簡體   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