我从Api获得的数据如下所示:
var arrayX = [{key: "GET", doc_count: 12},
{key: "POST", doc_count: 381}]
我想要显示此键的值'键'和' doc_cont'在图表中。 图表格式如下:
" ....
data: [{value: 'Doc_count' information of 'POST' key information will come in this field, name: 'POST'},
{value: put, name: 'PUT'},
{value: get, name: 'GET'}]
..."
当我想为' doc_count'分配值时在' arrayX',' undefined'归还。
for (var i = 0; i <= arrayX.length; i++) {
if (arrayX[i].key == 'POST') {
var post = arrayX[i].doc_count;
}
else if (arrayX[i].key == 'PUT') {
var put = arrayX[i].doc_count;
}
else if (arrayX[i].key == 'GET') {
var get = arrayX[i].doc_count;
}
}
我该如何解决这种情况? 我希望我的问题清楚。
答案 0 :(得分:0)
你很接近,这里唯一的问题是你的循环条件。
改变这个:
for (var i = 0; i <= arrayX.length; i++)
对此:
for (var i = 0; i < arrayX.length; i++)
我已将<=
更改为<
。
如果您使用<=
,则会得到0,1和2的索引,因为您在arrayX
中没有索引2,您将获得异常(数组索引从0开始)。
您可以在Arrays index
中阅读更多内容答案 1 :(得分:0)
根据我的理解,您希望转换以下结构的数组:
[{key: "GET", doc_count: 12}, {key: "POST", doc_count: 381}]
进入:
[{name: "GET", value: 12}, {name: "POST", value: 381}]
为此目的,Array.prototype.map()
可能是更具描述性的方式。
来自官方docs:
map()方法创建一个新数组,其结果是在调用数组中的每个元素上调用提供的函数。
var arrayX = [{
key: "GET",
doc_count: 12
}, {
key: "POST",
doc_count: 381
}]
var chartData = arrayX.map((item) => {
return {
name: item.key,
value: item.doc_count
}
});
console.log(chartData)
console.log(arrayX)
&#13;