如何解决使用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);
,
使用map
和indexOf
方法
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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。