javascript - angular如何将对象转化为数组
PHP中文网
PHP中文网 2017-04-11 12:43:58
0
3
568

数组中的数组products_mes[a]是对象 用indexOf()方法报错 有什么好的方法解决这个问题?

$scope.addCount=function(c,a){
                var arr = [];
                var obj=$scope.products_mes[a];
                console.log(obj);
                
                
                c=c+1;
                };

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(3)
黄舟

没搞明白是要干嘛
如果是数组要判断是否包含某元素 那就 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,那么你可以使用

Object.keys(products_mes[a]).indexOf(c)

如果你要判断value,那么因为Object.values 还是个提案,所以你可以用替代方法把Object 里面的 value 提取成数组,你可以试试用underscore.js 的where函数来返回一个值的结果集

_.where({a:1,b:2,c:3})
// [1,2,3]

这样你就可以继续使用indexOf(c)了。。

。。。。。。。。

Ty80

我有个疑问,既然 a (命名方式不敢恭维) 是表示数组下标,那么:

++$scope.products_mes[a].count;

就行,为何还要 indexOf 多此一举。

另,关于 indexOf 前面已经有人解读个大概了,可以通过:

angular.forEach($scope.products_mes, function(data, index) {
    // 判断条件
});

当然这一步是多余了,因为你的参数中已经知道下标了。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板