84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
数组中的数组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 前面已经有人解读个大概了,可以通过:
当然这一步是多余了,因为你的参数中已经知道下标了。