我有以下几点
var a = [4,6,12];
var b = [4,6];
for (var i = 0; i < a.length; i++) {
    for (var j = 0; j < b.length; j++) {
       if (a[i] !== b[j]) {
         a.pop();
       }
    }
}我想要比较这两个数组,如果在b中找不到,就从a中删除12。我不想创建一个新的数组,结果只是从a中删除。
然而,如果我通过控制台登录a,我会得到a为空。
发布于 2014-03-24 19:50:27
a出现为空的原因是因为您的双循环。您正在将a的每个元素与b的每个其他元素进行比较。当你点击== b1时,很明显,4 != 6,所以你会弹出它。
发布于 2014-03-24 19:49:48
var a = [4,6,12];
var b = [4,6];
for (var i = 0; i < a.length; i++) {
       if (!b.indexOf(a[i])) {
         a.pop();
       }
}发布于 2014-03-24 19:49:55
var a = [4,6,12];
var b = [4,6];
var common = $.grep(a, function(element) {
    return $.inArray(element, b ) !== -1;
});
console.log(common); // returns [4,6];https://stackoverflow.com/questions/22608503
复制相似问题