Javascript:通过另一个数组中列出的键提取一个数组

Javascript: extract an array by keys listed in another array

本文关键字:数组 提取 一个 另一个 Javascript      更新时间:2023-09-26

我需要获得数组c,它将在Javascript中列出数组b的成员,这些键列在数组a中。按键完全是任意的。

例如,我得到了:

a = [0, 3, 16];
b = [456, 343453, 34534, 564, 4564, 4545, 456, 5, 54645, 3453, 345345, 3543, 44554, 4545, 4545, 454353, 34534345, 345345, 345345, 457556, 43434, 35354];

我想要由数组b的第1、第4和第17个成员组成的数组。除了将每个成员推入新数组之外,还有什么方法吗?比如:

c = extractArray(b, a);
function extractArray(source, section) {
    var target = [];
    for(i = 0; i < section.length; i++) {
        target.push(source[section[i]]);
    }
    return target;
}

因此,对a进行迭代,并在a的一个索引处将b中的所有项添加到c:

var a = [0, 3, 5, 100],
    b = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'],
    c = [];
for(var i = 0; i < a.length; i++){
  if(b[a[i]] !== undefined)
    c.push(b[a[i]]);
}
document.write(JSON.stringify(c));

您可以使用ab上使用filter来构建过滤函数:

function byIndex(indexes) {
  return function(elem, index) {
    return indexes.indexOf(index) >= 0;
  }
}
a = [0, 3, 16];
b = [...some array...];
var filtered = b.filter(byIndex(a));