比较第一个数组中的元素位置和第二个数组中的数字

时间:2017-02-09 14:04:05

标签: javascript jquery arrays

我正在尝试比较两个数组,更具体地来说是对第一个数值的值做一些事情,第一个数据的位置与第二个数字的数字匹配。

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                     
   }
}

3 个答案:

答案 0 :(得分:2)

其中一个解决方案是使用map()方法,该方法为array中的每个项目应用提供的回调函数。

&#13;
&#13;
var valuesList = ['value1', 'value2', 'value3', 'value4', 'value5'],
 positionNumberList = [0, 2, 4];

console.log(positionNumberList.map(function(item) {
  return valuesList[item];
}));
&#13;
&#13;
&#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])
     }
}

https://jsfiddle.net/xrjjxmbn/