gpt4 book ai didi

javascript - 使用一个数组的元素作为索引来创建新数组以选择不同数组中的元素 - JavaScript

转载 作者:搜寻专家 更新时间:2023-11-01 05:30:01 27 4
gpt4 key购买 nike

完成这个花了将近一天半的时间,我仍然不确定它为什么会起作用。如果有更好的方法来完成,我很想听听。在目前的状态下,我希望这对某人有所帮助。

var newValuesArray = [];
var arrayIndex = [1, 4, 9];
var valuesArray = [["Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"],
["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"]
];

var roots = valuesArray.map(function(num) {
arrayIndex[num];
return arrayIndex;
});

for (var i = 0, len = roots.length; i < len; i++) {
newValuesArray.push(roots[i].map(function(num) {
return valuesArray[i][num];
}));
}

console.log(newValuesArray);

这是我正在寻找的结果,上面的代码产生了:

[["One", "Four", "Nine"], ["B", "E", "J"]]

最佳答案

您可以使用 map() filter()

var arrayIndex = [1, 4, 9];
var valuesArray = [
["Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"],
["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"]
];

// iterate over main array using map()
var newValuesArray = valuesArray.map(function(v) {
// iterate and filter values in inner array using filfer()
return v.filter(function(v1, i) {
// check index in arrayIndex
return arrayIndex.indexOf(i) > -1;
});
});

document.write('<pre>'+JSON.stringify(newValuesArray,null,3)+'</pre>');

更新:以防万一,如果您需要获取与索引数组相同顺序的值,则使用

var arrayIndex = [4, 9, 1];
var valuesArray = [
["Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"],
["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"]
];

// iterate over main array using map()
var newValuesArray = valuesArray.map(function(v) {
// iterate the index array
return arrayIndex.map(function(v1) {
// get value from inner array based on index
return v[v1];
});
});

document.write('<pre>'+JSON.stringify(newValuesArray,null,2)+'</pre>');

关于javascript - 使用一个数组的元素作为索引来创建新数组以选择不同数组中的元素 - JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33154029/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com