[英]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.