【问题标题】:how to compare 2 array for multiple select in javascript如何在javascript中比较2个数组以进行多选
【发布时间】:2021-12-25 10:39:27
【问题描述】:

您好,如何比较 2 个数组 javascript 以进行多选 第一个数组是帐户:['ID': 2,'nama': 'test']['ID': 3,'nama': 'test1']['ID': 4,'nama': 'test4']['ID': 5,'nama': 'test5']

第二个数组是 account_selected :['ID': 2,'nama': 'test']['ID': 5,'nama': 'test']

如何知道第一个数组的 id 到第二个数组,我必须像这样编码,但只有数组 [0] 可以比较

    $.each( account, function( i, value ) {
        var data = value;

        if (data.ID == account_selected[0].ID){
            temp += '<option selected  value="'+data.ID+'" id="account_id'+data.ID+'" value="'+data.ID+'" >'+data.nama+'</option>'
        } else {
            temp += '<option  value="'+data.ID+'" id="account_id'+data.ID+'" value="'+data.ID+'" >'+data.nama+'</option>'
        }
    });

此代码只是首先比较第一个数组 account_selected ,如果数据相同,我想选择选项

【问题讨论】:

  • account_selected[0] 应该是account_selected[index]
  • error bro Uncaught TypeError: Cannot read properties of undefined (reading 'ID')
  • 表示没有匹配。您还应该(首先)检查index &gt; -1。所以if (index &gt; -1 &amp;&amp; data.ID == account_selected[index].ID)。为什么要为此使用 jQuery 函数?原生 JavaScript 有这方面的功能......使用 jQuery 进行 DOM 操作,但不能用于处理或循环数组。
  • 你能用jsfiddle解释一下吗?
  • 你提供的数组结构好像是无效的,说明可以更好。

标签: javascript jquery arrays


【解决方案1】:

您必须使用嵌套数组来匹配检查验证。

  var account = [
    {'ID': 2,'nama': 'test'},
    {'ID': 3,'nama': 'test1'},
    {'ID': 4,'nama': 'test4'},  
    {'ID': 5,'nama': 'test5'},
  ];
  var account_selected = [
    {'ID': 2,'nama': 'test'},
    {'ID': 5,'nama': 'test'}
  ];

  $.each( account, function( i, valueAccount ) {
    var dataAccount = valueAccount;

    $.each( account_selected , function( i, valueSelected ) {
      var dataSelected = valueSelected;
      var temp = '';
      if( (dataSelected.ID == dataAccount.ID) &&  (dataSelected.nama == dataAccount.nama) ){
      temp += '<option selected  value="'+dataSelected.ID+'" id="account_id'+dataAccount.ID+'" value="'+dataAccount.ID+'" >'+dataAccount.nama+'</option>'
      }else{
      temp += '<option  value="'+dataAccount.ID+'" id="account_id'+dataAccount.ID+'" value="'+dataAccount.ID+'" >'+dataAccount.nama+'</option>'
      }
      console.log(temp);
    });
  });

【讨论】:

    猜你喜欢
    • 2019-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多