84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
数组中的数组products_mes[a]是对象 用indexOf()方法报错 有什么好的方法解决这个问题?
$scope.addCount=function(c,a){ var arr = []; var obj=$scope.products_mes[a]; console.log(obj); c=c+1; };
认证高级PHP讲师
没搞明白是要干嘛如果是数组要判断是否包含某元素 那就 arr.indexOf(item)如果是对象要判断是否包含某属性 那就 obj.xxx 或者 obj[xxx] 是否为空就行了var obj = {name:"老王",id:1};obj.name // "老王"obj.age // undefined
首先你这个问题,不太明确。我尝试去理解你的问题products_mes[a]里面判断c是否存在 ?要判断一个object 里面是否包含某个c这里需要确定你是查询key,还是value.假定是判断key,那么你可以使用
products_mes[a]
c
Object.keys(products_mes[a]).indexOf(c)
如果你要判断value,那么因为Object.values还是个提案,所以你可以用替代方法把Object 里面的 value 提取成数组,你可以试试用underscore.js的where函数来返回一个值的结果集
Object.values
underscore.js
_.where({a:1,b:2,c:3}) // [1,2,3]
这样你就可以继续使用indexOf(c)了。。
。。。。。。。。
我有个疑问,既然a(命名方式不敢恭维) 是表示数组下标,那么:
a
++$scope.products_mes[a].count;
就行,为何还要indexOf多此一举。
indexOf
另,关于indexOf前面已经有人解读个大概了,可以通过:
angular.forEach($scope.products_mes, function(data, index) { // 判断条件 });
当然这一步是多余了,因为你的参数中已经知道下标了。
没搞明白是要干嘛
如果是数组要判断是否包含某元素 那就 arr.indexOf(item)
如果是对象要判断是否包含某属性 那就 obj.xxx 或者 obj[xxx] 是否为空就行了
var obj = {name:"老王",id:1};
obj.name // "老王"
obj.age // undefined
首先你这个问题,不太明确。
我尝试去理解你的问题
products_mes[a]
里面判断c
是否存在 ?要判断一个object 里面是否包含某个
c
这里需要确定你是查询key,还是value.假定是判断key,那么你可以使用
如果你要判断value,那么因为
Object.values
还是个提案,所以你可以用替代方法把Object 里面的 value 提取成数组,你可以试试用underscore.js
的where函数来返回一个值的结果集这样你就可以继续使用indexOf(c)了。。
。。。。。。。。
我有个疑问,既然
a
(命名方式不敢恭维) 是表示数组下标,那么:就行,为何还要
indexOf
多此一举。另,关于indexOf前面已经有人解读个大概了,可以通过:
当然这一步是多余了,因为你的参数中已经知道下标了。