【问题标题】:Iterating an array inside an array在数组中迭代数组
【发布时间】:2015-09-14 16:11:16
【问题描述】:

我有一个数据结构,其中我在一个数组中有一个数组,我需要对其进行迭代和比较。 我需要比较我的datasets 数组和patientList 数组是否都具有相同的id's

我的DS

$scope.data = [
    {
        "_id" : ObjectId("55f6e6d39a31fb5419c7b587"),
        "datasets" : [
                ObjectId("55f6c34e9e3cdc00273b57a3"),
                ObjectId("55f6c3569e3cdc00273b57a4"),
                ObjectId("55f6c3639e3cdc00273b57a5"),
                ObjectId("55f6c36e9e3cdc00273b57a6"),
                ObjectId("55f6c3789e3cdc00273b57a7")
        ],
        "__v" : 0
    },
    {
        "_id" : ObjectId("55f6e6d39a31fb5419c7b587"),
        "datasets" : [
                ObjectId("55f6c34e9e3cdc00273b57a3"),
                ObjectId("55f6c3569e3cdc00273b57a4"),
        ],
        "__v" : 0
    }
];

代码:

if ($scope.data.length > 0) {
    for (var i = 0; i < $scope.data.length; i++) {
        for (var j = i; j < $scope.data[i].datasets; j++) {
            if ($scope.data[i].datasets[j] == $scope.patientList[i]._id) {
                $scope.data[i].datasets[j].push($scope.patientList[i]);

            }
        }
    }
}

$scope.patientList 是具有_idpatientname 的对象数组。上面的代码不起作用。

【问题讨论】:

  • 您在迭代数组时正在修改数组,使用数组的长度作为上限。你确定要这样做吗?
  • @DavidL:我知道我可以保留一个新数组,但是当我尝试迭代时上面的代码不起作用......不确定哪里出错了。谢谢:)
  • 你认为它目前没有做什么?
  • 我想将 datasets 数组与另一个数组进行比较...看看它们是否具有相同的 id。
  • 我仍然非常困惑。如果他们确实有相同的 ID,你想做什么?你想抓取重复项吗?是否要删除不匹配项?要将匹配项移动到新数组吗?很难理解你在这里真正想做什么。

标签: javascript arrays angularjs


【解决方案1】:
j < $scope.data[i].datasets

限制不应该是一个数值,而不是一个容器吗?

我猜你也希望它是j &lt; $scope.date[i].datasets.length...

【讨论】:

    【解决方案2】:

    我猜,如果你输入$scope.data[i].datasets.length.,它会起作用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多