我正在尝试比较两个数组,更具体地来说是对第一个数值的值做一些事情,第一个数据的位置与第二个数字的数字匹配。
var valuesList = ['value1', 'value2', 'value3', 'value4', 'value5'],
positionNumberList = [0, 2, 4];
从上面的数组value1应该从第二个eq到0,value3 = 2 .etc
我从下面的代码开始,但无法从第一个数组中获取值的位置。
for(j=0; j < valuesList.length; j++){
for(k=0; k < positionNumberList.length; k++){
//find matching values from first array
}
}
答案 0 :(得分:2)
其中一个解决方案是使用map()
方法,该方法为array
中的每个项目应用提供的回调函数。
var valuesList = ['value1', 'value2', 'value3', 'value4', 'value5'],
positionNumberList = [0, 2, 4];
console.log(positionNumberList.map(function(item) {
return valuesList[item];
}));
&#13;
答案 1 :(得分:1)
为此,您只需要一个循环来遍历positionNumberList
数组,然后使用给定索引访问valuesList
中的项目,如下所示:
var valuesList = ['value1', 'value2', 'value3', 'value4', 'value5'];
var positionNumberList = [0, 2, 4];
positionNumberList.forEach(function(index) {
var value = valuesList[index];
console.log(value);
});
答案 2 :(得分:0)
另一种方法:
var valuesList = ['value1', 'value2', 'value3', 'value4', 'value5'],
positionNumberList = [0, 2, 4];
if(positionNumberList.length < valuesList.length){
for(var i=0; i < positionNumberList.length; i++){
console.log(positionNumberList[i],valuesList[i])
}
}
else{
for(var i=0; i < valuesList.length; i++){
console.log(valuesList[i],positionNumberList[i])
}
}