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

数组中的数组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讲师

membalas semua (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) { // 判断条件 });

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

        Muat turun terkini
        Lagi>
        kesan web
        Kod sumber laman web
        Bahan laman web
        Templat hujung hadapan
        Tentang kita Penafian Sitemap
        Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!