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