嘿,我想在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));
});
答案 0 :(得分:1)
moreNumbers
没有.index
属性。如果数组确实具有.index
属性,则不会在moreNumbers.index=<value>
进行比较,这是一个赋值。
controlList
是Array
,而不是数组的单个元素。
index
回调的 .forEach()
参数来获得预期的结果。
if
controlList
.includes()
item
然后.push()
item
至controlListApproved
。
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)) {
//...
}