繁体   English   中英

根据来自另一个表的索引获取数组的元素

[英]Get elements of an array based on indexes from another table

我有两个数组。
一个与我的数据:

var tab1 = ["one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen","twenty"];

另一个带有 int:

var tab2 = [1,4,5,8,12,15,18];

我想放入tab1中的tab3值,这些值具有来自tab2值的索引。
我曾尝试使用一些indexOf // findIndexe
做到这一点的最佳方法是什么?

您可以将tab2数组映射到名为tab3的新数组中

 const tab1 = [ "one","two","three","four","five","six","seven", "eight","nine","ten","eleven","twelve","thirteen","fourteen", "fifteen","sixteen","seventeen","eighteen","nineteen","twenty" ]; const tab2 = [1,4,5,8,12,15,18]; const tab3 = tab2.map(index => tab1[index]) console.log(tab3)

问题要求索引。 但是,如果所需的答案是数字的实际字符串表示形式,则您将在列表中搜索index-1项。

 const tab1 = [ "one","two","three","four","five","six","seven", "eight","nine","ten","eleven","twelve","thirteen","fourteen", "fifteen","sixteen","seventeen","eighteen","nineteen","twenty" ]; const tab2 = [1,4,5,8,12,15,18]; const tab3 = tab2.map(index => tab1[index -1]) console.log(tab3)

使用Array.map()

 const tab1 = ["one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen","twenty"]; const tab2 = [1,4,5,8,12,15,18]; const tab3 = tab2.map(num => tab1[num - 1]); console.log(tab3);

让我们迭代包含索引的数组并将数据的值对应于索引。

tab2.forEach(i => { 
    tab3.push(tab1[i]) 
})

你可以通过使用对象来做到这一点,因为 js 中没有索引数组。

var tab1 = ["one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen","twenty"];

var tab2 = [1,4,5,8,12,15,18];
var tab3 = {};
tab2.forEach((val) => {
    tab3[val] = tab1[val];
})

console.log(tab3);

当然,tab3 的键和值不会匹配,因为 js 数组是从零开始的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM