Javascript 对对象中的数组进行计数并替换

Javascript 对对象中的数组进行计数并替换,javascript,arrays,angularjs,object,Javascript,Arrays,Angularjs,Object,我当前有一个对象正在返回以下内容: Object {1: 0, 2: Array[2], 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0} 我试图用数字“2”(计算数组中的记录数)来“替换”数组[2]。下面是代码 var obj = {1: 0, 2: [0, 1], 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0}; Object.keys

我当前有一个对象正在返回以下内容:

Object {1: 0, 2: Array[2], 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0}
我试图用数字“2”(计算数组中的记录数)来“替换”数组[2]。

下面是代码

var obj = {1: 0, 2: [0, 1], 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0};

Object.keys(obj).forEach(function(key) {
    if (Array.isArray(obj[key])) {
        obj[key] = obj[key].length;
    }
});
试试这个:

Object.keys(your_object).forEach(function(index){
    if (toString.call(your_object[index]) === '[object Array]') {
        your_object[index] = your_object[index].length;
    }
});

可以这样做,将所有数组转换为其等效长度

for( var key in obj ) {

  if( obj[key] instanceof Array ) {
    obj[key] = obj[key].length;
  }

}