使用include方法从另一个数组获取特定索引

时间:2019-02-05 14:41:57

标签: javascript

嘿,我想在foreach循环中使用include方法在其他数组controlList的帮助下复制我的数字数组中的元素,最后我想将其推送到controlListApproved数组

正如您在第64行中看到的那样,我尝试过,但始终给我假消息

var moreNumbers=[];
var controlList=[0, 4, 7, 9];
var controlListApproved=[];

for (var i = 0; i < 30; i++) {
    moreNumbers[i]=Math.floor(Math.random()*(20-0))+0;
};
console.log(moreNumbers);

moreNumbers.forEach(function(item, index){

        console.log(moreNumbers.index=moreNumbers.includes(controlList));
    });

3 个答案:

答案 0 :(得分:1)

moreNumbers没有.index属性。如果数组确实具有.index属性,则不会在moreNumbers.index=<value>进行比较,这是一个赋值。

controlListArray,而不是数组的单个元素。

似乎不需要使用index回调的

.forEach()参数来获得预期的结果。

if controlList .includes() item然后.push() itemcontrolListApproved

moreNumbers.forEach(function(item, index){
  if (controlList.includes(item)) {
    controlListApproved.push(item)
  }
});

答案 1 :(得分:0)

不确定我能完全理解您要做什么,但这可能是您的答案:

var moreNumbers=[];
var controlList=[0, 4, 7, 9];

for (var i = 0; i < 30; i++) {
    moreNumbers[i]=Math.floor(Math.random()*(20-0))+0;
};
console.log(moreNumbers);

var controlListApproved = moreNumbers.filter(number => controlList.includes(number))
console.log(controlListApproved)

答案 2 :(得分:0)

出问题了:

  moreNumbers.index

等于

   moreNumbers["index"]

因此,您实际上是在尝试访问命名属性,而您可能想访问存储在index中的索引:

 moreNumbers[index]

现在而不是检查controlList(这是一个数字数组)是否位于moreNumbers(这是一个数字数组,因此它不包含数字数组,而只是数字) ,您可能想检查item中是否包含controlList

 if(controlList.includes(item)) {
   //...
 }