算法求助:JS 模拟 cantains 匹配

数组a 是一维数组
["a","b","c"]
数组b 是二维数组
[[{"id":"1"},{"id":"2"},{"id":"a"}],[{"id":"b"}],[{id:"c"}]]

要求

b 的所有元素如果匹配上 a 里的元素的 id,就给 b 这项增加属性,is_checked 反之是 false。

阅读 1.8k
2 个回答

0000000000.png

    var a = ['a', 'b', 'c']
    var b = [
      { id: 'a' },
      { id: 'd' },
      { id: 'e' },
    ]

    function cantains (one, two) {
      two.forEach(item => {
        item.is_checked = a.some(id => id === item.id)
      })
      return two;
    }
新手上路,请多包涵
 for (var i = 0; i < problems.dataArr.length; i++) {
                        for (var j = 0; j < problems.dataArr[i].length; j++) {
                            contains(checkArr2, problems.dataArr[i][j])
                        }
                    }
 function contains(arr, obj) {
                        if (arr.indexOf(obj.problem_id) > -1) {
                            obj.is_checked = true
                        } else {
                            obj.is_checked = false
                        }
                    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏