jquery $.each() 如何判断前后函数里面的value是否相同?

NeoChang
  • 1.4k
   $.each(data, function(k, v) {
       $.each(data, function(i, val) {
           if ( v['type'] == 1 ) {
               if ( v['themeName'] == val['themeName']) {
               }
           }
       }
    }

这样子写一直报错,然后用JS for in嵌套是没问题的?问什么?

   for (var k in data ) {
        for (var i in data) {
            if ( data[k]['type'] == 1 ) {
                if ( data[k]['themeName'] == data[i]['themeName']) {
                }
            }
        }
   }
   

能不能用一个each解决问题?

回复
阅读 4.4k
2 个回答

首先,你的两个each的代码就是贴的那段吗,如果只是那么一段,那么是不完整了,少了});

其次,两个each也是没有问题的

var data = [{
    type: 1,
    themeName: 'AAA'
}, {
    type: 1,
    themeName: 'BBB'
}]

$.each(data, function(k, v) {
    $.each(data, function(i, val) {
        if (v['type'] == 1) {
            if (v['themeName'] == val['themeName']) {
                console.log('EQUAL');
            }
        }
    })
})

或者你可以把具体的错误信息贴出来

你自己的两种方式应该都是可以的吧,为什么需要用变量先存储v['themeName']这个值才不报错呢?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏