我有两个复杂的下一个对象数组,我在使用循环和if语句中寻找限定值,如下所示。当我找到一个合格的对象时,我需要在循环的下一个循环中过滤出这个对象。正如您在这里看到的那样,我试图用一个数组来实现这一点,但是在循环的每一次迭代过程中,数组都会重新开始,所以它无法工作。下面的版本是我代码的简化版本。
我希望基于if语句更新array2中的值,以便这些值不会在嵌套循环中重复。相反,我的emptyArray仍然是空的,而不是从array2中添加值,因为array2的元素等于数组的元素。
要明确的是,现在emptyArray仍然是空的,永远不会过滤array2。我希望在外部循环的第二次迭代开始时看到emptyArray收集值2,然后在外部循环的第4次迭代开始时看到emptyArray收集值4。
我希望将这些值从array2中筛选出来,因为它们成为emptyArray的一部分,这样它们就不会在外部循环的第6和第8次迭代期间触发if语句。我设想当循环结束时,emptyArray = 2,4和array2 = 6,8,10。
最后,我需要emptyArray来收集限定值,并将它们传递回var array2,以便作为循环进程进行过滤。请记住,这是数组的简化版本,基于下划线的解决方案对我来说实现起来非常复杂,或者您可以成功地提出更详细的建议。
我的代码:
var array = [1, 2, 3, 4, 1, 2, 3, 4];
var array2 = [2, 4, 6, 8, 10];
var emptyArray = [];
for (i = 0; i < array.length; i++){
var something = array[i];
var array2 = _.without(array2, emptyArray);
for (a = 0; a < array2.length; a++){
var value = array2[a];
if(something === value){
emptyArray.push(value);
break;
}
}
}发布于 2015-03-27 07:54:55
var array = [1, 2, 3, 4, 1, 2, 3, 4];
var array2 = [2, 4, 6, 8, 10];
var emptyArray = [];
for (var i = 0; i < array.length; i++) {
var something = array[i];
for (var j = 0; j < array2.length; j++) {
var value = array2[j];
if (something === value) {
array2 = _.without(array2, value);
break;
}
}
}https://stackoverflow.com/questions/29294790
复制相似问题