【发布时间】:2014-06-06 07:12:13
【问题描述】:
我有这个 angularjs 数组:$scope.fav = [] 在函数调用中添加项目(对象)。这些对象的一个例子是{quote: "Some text", controller: some_controller} 当我向数组中添加一个新对象时,数组保存在本地存储中。该数组完全按照我想要的方式工作,除非我尝试在 console.log() 中打印它,我得到很多 [object, Object],我只是假设它是打印方式。不过,这不是主要问题,因为数组按需要工作。
我遇到的问题是尝试查找对象是否已经在数组中。我试过了
if ($scope.fav.indexOf({quote: q, controller: c}) == -1)
这似乎不起作用,因为进入的每个对象都是索引-1,即使它已经在数组中。我认为这是因为它没有正确读取对象。
最后我使用了这个函数:
$scope.containsObject = function(obj, list) {
var i;
for (i = 0; i < list.length; i++) {
if (list[i] === obj) {
return true;
}
}
return false;
}
检查对象是否在数组中。我是这样称呼它的:
$scope.addToFav = function(q, c) {
$scope.value = $scope.containsObject({quote: q, controller: c}, $scope.fav)
console.log($scope.value);
}
即使对象在数组中,我也会不断得到 $scope.value 的负值。 很抱歉冗长复杂的解释。
感谢您的洞察力, 本
【问题讨论】:
标签: javascript arrays angularjs local-storage