如何修复angular.forEach中对象的重复
How to fix duplicatation of object in angular.forEach?
请帮助我如何解决这个问题
<>之前模式。controller('schemaDetailCtrl', function($scope, ajaxCall, $location) {美元的范围。storeDetails = [{"storeName": "测试存储";"zipCode":"201301","idenNo":"999999"},{"storeName": "Test2 Store","zipCode":"201014","idenNo":"200037"},{"storeName": "Test3 Store","zipCode":"201014","idenNo":"200137"}];美元的范围。zipcodes = new Array();angular.forEach($范围。storeDetails, function(store) {this.push (store.zipCode);console.log (store.zipCode);}, scope.zipcodes美元);预期产出:201301201014201014实际输出:错误:[ngRepeat:dupes] http://errors.angularjs.org/1.2.20/ngRepeat/dupes?p0=zipcode%20in%20zipcodes&p1=string%3A201014这个问题与你的forEach
没有直接关系。它正在从视图中抛出,可以通过将track by
添加到ng-repeat
语句中来解决:
<div ng-repeat="zip in zipcodes track by $index">
如果您不希望在数组中出现重复项,那么将它们过滤掉将是一个单独的问题。
参考文件
谢谢大家的回答,现在我用for循环代替角。每一个,听起来不错。
for(var i = 0; i < $scope.storeDetails.length; i++) {
var store = $scope.storeDetails[i];
if(contains($scope.zipcodes, store.zipCode) === false) {
$scope.zipcodes.push(store.zipCode);
}
}
function contains(a, obj) {
for (var i = 0; i < a.length; i++) {
if (a[i] === obj) {
return true;
}
}
return false;
}
不需要将邮政编码复制到另一个数组中以在视图中显示,只需遍历storeDetails数组,然后引用zipCode属性来显示它。
<ul ng-repeat="store in storeDetails">
<li>{{store.zipCode}}</li>
</ul>
这将避免数组中重复的问题。
相关文章:
- 引用对象中的通用值
- jQuery匹配JSON对象的部分文本
- 用javascript修复这个JSON对象字符串最干净的方法是什么
- 如何修复错误'对象没有't支持属性或方法'getScreenCTM''在Inter
- XUL文档与HTML文档对象有何不同
- Javascript对象:这两个值有何不同
- 什么是声明性环境记录,它与激活对象有何不同
- 修复Javascript错误:未捕获的类型错误:对象[对象对象]没有“可调整大小”的方法
- 如何修复对象自动重新排序最小值到最大值(在)循环中
- JavaScript函数对象与Scala函数对象有何不同
- 如何修复angular.forEach中对象的重复
- 需要帮助修复由于2个javascript对象具有相同的名称,但不同的构造器引起的问题
- 修复对象内多个js嵌套函数的作用域
- 如何修复TypeError: 'null'不是一个对象(求值'e.parentNode'
- 我如何修复这个JSON对象到html表代码
- 修复滚动时浏览器窗口顶部的对象
- 如何修复IE问题'parentNode'是否为null或不是Ext.js.1.1的对象
- 如何修复谷歌的位置's+1个对象靠近网页上的另一个对象
- 我该怎么做来修复jqGrid抛出错误时(多)选择一行:'为空或不是对象
- 如何修复:TypeError: 'null'不是一个对象(计算'event.relatedTar