循环遍历一个对象和循环遍历数组的嵌套for循环

时间:2015-06-24 23:14:40

标签: javascript arrays object for-loop for-in-loop

我循环遍历一个对象然后在每个对象上我将它与我的数组中的项进行比较,希望然后将不相同的对象推送到我的ItemsNotInObject数组中。希望有人可以为我阐明这一点。提前谢谢。

var obj = {a:1, a:2, a:3};
var array = [1, 4, 2, 5, 6];
var ItemsNotInObject = [];


for (var prop in obj) {
    for(var i = 0, al = array.length; i < al; i++){
       if( obj[prop].a !== array[i] ){
           ItemsNotInObject.push(array[i]);
        }
    }
}

console.log(ItemsNotInObject);
//output of array: 1 , 4 , 2 , 5, 6

//output desired is: 4 , 5 , 6

2 个答案:

答案 0 :(得分:1)

如果你可以使你的obj变量成为一个数组,你就可以这样做;

subItem = ....

如果obj变量需要是json对象,请提供它的正确形式,以便我可以根据它更改代码。

答案 1 :(得分:1)

  1. 您的对象有重复的键。这是不是有效的 props对象。让它们独一无二
  2. 请勿访问declare @CurrentUserID int SET @CurrentUserID = 1 select P.PostID , case when exists (select 1 from Likes L where L.POSTID = P.PostID and L.USERID = @CurrentUserID) then 'yes' else 'no' end LikedBefore from Posts P 之类的对象值,JSON obj[prop].a
  3. 克隆原始数组。
  4. 使用obj[prop]检查数组是否包含object属性。
  5. 如果是,请将其从克隆阵列中删除。
  6. a