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

时间:2015-11-09 13:33:34

标签: javascript arrays

我需要获取数组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;
}

2 个答案:

答案 0 :(得分:0)

因此,迭代a,并将b其中一个a索引中的所有项目添加到c

&#13;
&#13;
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));
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您可以filter使用b a来构建过滤功能:

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));