indexOf数组返回-1,即使数组中存在该值

时间:2017-05-29 11:41:49

标签: javascript angularjs arrays

我有一个placeCollection集合,其中有一个名为locFrnd的数组。 由于我无法在indexOf对象数组上使用locFrnd函数,因此我将其移动到名为dup的新数组中。因为dup的主要目的是我可以使用数据并在其上执行indexOf函数。 $scope.Friend是传入的数据源,也是一个数组。用户可以在$scope.Friend中发送多个值。我想在这里检查的主要逻辑是,如果在$scope.Friend中有两个值作为用户输入,则需要在locFrnd数组中逐个检查这两个值。如果它们不存在,则它们不存在需要被推入locFrnd数组。唯一的挑战是indexOf操作指的是dup的最后一个值。例如dupr,j$scope.Friend来自r,j的{​​{1}} j与来自dup的{​​{1}}进行比较下一个值也没有被检查。在r函数

的情况下,我不确定为什么会出现这种匿名行为
$scope.Friend

1 个答案:

答案 0 :(得分:0)

答案很简单。

您正在for循环的每次迭代中初始化dup。在循环外部初始化

var dup = [];
for (var j = 0; j < len; j++) {
  dup[j] = $scope.placeCollection[cnt_i].locFrnd[j].name;
}