使用Javascript将标记化的字符串转换为整数

问题描述

我已经看到了这个question,但是就像在python中一样,我想问一个类似的问题。 在不使用库的情况下,我该如何处理以下形式的带符号的字符串数组:

[["hi","how","are","you"],["how","you","doing"]] 

如果我在下面显示字典,我该如何创建一个与标记化数组具有相同格式的数组,而不是使用字符串,而是使用一个整数来表示其在字典中的位置?

["how","hi","doing"]

所以输出看起来像这样:

[[2,1,0],[1,3]]

解决方法

我首先将第二个数组转换为对象,因此您可以在恒定时间内进行查找:

function translate(input,reference) {
    let map = Object.fromEntries(reference.map((ref,i) => [ref,i+1]));
    return input.map(phrase => phrase.map(word => map[word] || 0));
}

// Demo
let res = translate([["hi","how","are","you"],["how","you","doing"]],"hi","doing"]);
console.log(res);

,

使用mapindexOf方法

arr = [
  ["hi","doing"],];

// your input is array in javascript (not a dictionary)
const keys = ["how","doing"];

const res = arr.map((arr) => arr.map((word) => keys.indexOf(word) + 1));

console.log(res)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...