Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将此对象中的每个密钥对作为新对象添加到数组中?_Javascript_Arrays_Object - Fatal编程技术网

Javascript 如何将此对象中的每个密钥对作为新对象添加到数组中?

Javascript 如何将此对象中的每个密钥对作为新对象添加到数组中?,javascript,arrays,object,Javascript,Arrays,Object,我有一个API,它返回一个如下所示的对象: {不确定:5,产品:25,趋势:124} 我需要做的是将这些键/值对添加到一个数组中,使它们像这样出现: catArray = [ { unsure: 5 }, { products: 5 }, { trend: 5 }, ] 更好的是: catArray = [ { name: unsure, count: 5 }, { name: products,

我有一个API,它返回一个如下所示的对象:

{不确定:5,产品:25,趋势:124}

我需要做的是将这些键/值对添加到一个数组中,使它们像这样出现:

catArray = [
    { unsure: 5 },
    { products: 5 },
    { trend: 5 },
]
更好的是:

catArray = [
    {
        name: unsure,
        count: 5
    },
    {
        name: products,
        count: 15
    },
    {
        name: trend,
        count: 50
    }
]
当前代码笔代码:

var categories = { unsure: 5, products: 25, trend: 124 }
var catArray   = [];

for (var i in categories) {
  console.log(i + ":" + categories[i]);
  catArray[i] = categories[i];
}

// vm.categories = Object.keys(data.data.categories);
console.log('catArray =',catArray);
现在我得到了一个长度为
0
的奇怪数组,我的目标是一个数组,其中包含对象,然后我可以在我的Angular应用程序中使用
ng repeat
迭代并构建一个列表


非常接近,您可以执行以下操作:

var data = { unsure: 5, products: 25, trend: 124 }
var newData = [];

for (var key in data) {
    newData.push({
        name: key,
        count: data[key]
    });
}
或者,另一种方法

var newData = Object.keys(data).map(function(key) {
    return {
        name: key,
        count: data[key]
    }
});

演示:

非常接近,您可以执行以下操作:

var data = { unsure: 5, products: 25, trend: 124 }
var newData = [];

for (var key in data) {
    newData.push({
        name: key,
        count: data[key]
    });
}
或者,另一种方法

var newData = Object.keys(data).map(function(key) {
    return {
        name: key,
        count: data[key]
    }
});
演示:

您可以使用这种方式

var categories = { unsure: 5, products: 25, trend: 124 }
var catArray   = [];
for (var i in categories) {
  if (categories.hasOwnProperty(i)) {
    alert(i + " -> " + categories[i]);
    catArray.push({name:i,value:categories[i]});
  }
}


// vm.categories = Object.keys(data.data.categories);
console.log(catArray);
你可以用这种方式

var categories = { unsure: 5, products: 25, trend: 124 }
var catArray   = [];
for (var i in categories) {
  if (categories.hasOwnProperty(i)) {
    alert(i + " -> " + categories[i]);
    catArray.push({name:i,value:categories[i]});
  }
}


// vm.categories = Object.keys(data.data.categories);
console.log(catArray);

第二个版本的Object.keys是否更快?@LeonGaban——老实说,不知道——通过jsperf!运行它:DWhoa,
.map
方式快66%!第二个版本的Object.keys是否更快?@LeonGaban——老实说,不知道——通过jsperf!运行它:DWhoa,
.map
方式快66%!