Javascript 如何在angularjs中将对象转换为数组
我正在将json对象转换为数组。我得到的数据如下。我尝试过谷歌,但没有找到答案。如何从下面的数据中解决这个问题Javascript 如何在angularjs中将对象转换为数组,javascript,arrays,json,angularjs,Javascript,Arrays,Json,Angularjs,我正在将json对象转换为数组。我得到的数据如下。我尝试过谷歌,但没有找到答案。如何从下面的数据中解决这个问题 [{"january":"0.00","february":"0.00","mac":"1271.00","april":"5.00","may":"0.00","june":"0.00","july":"0.00","august":"0.00","september":"0.00","october":"0.00","november":"0.00","december":"0.0
[{"january":"0.00","february":"0.00","mac":"1271.00","april":"5.00","may":"0.00","june":"0.00","july":"0.00","august":"0.00","september":"0.00","october":"0.00","november":"0.00","december":"0.00"}]
进入这个
$scope.data = [
[0.00, 0.00, 1271.00, 5.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00]
];
在file.html中
<div class="card">
<div class="card-header">
<i class="icon-graph icon-bg"></i>Bar Chart
</div>
<canvas id="bar" class="chart chart-bar" chart-data="graph" chart-labels="labels"></canvas>
</div>
您可以使用函数
Object.values
Object.values(o) // Returns an array of values.
let obj=[{“一月”:“0.00”,“二月”:“0.00”,“mac”:“1271.00”,“四月”:“5.00”,“五月”:“0.00”,“六月”:“0.00”,“七月”:“0.00”,“八月”:“0.00”,“九月”:“0.00”,“十月”:“0.00”,“十一月”:“0.00”,“十二月”:“0.00”);
让值=对象映射(Object.values);
console.log(值)代码>
作为控制台包装{max height:100%!important;top:0;}
您可以使用函数对象。值
Object.values(o) // Returns an array of values.
let obj=[{“一月”:“0.00”,“二月”:“0.00”,“mac”:“1271.00”,“四月”:“5.00”,“五月”:“0.00”,“六月”:“0.00”,“七月”:“0.00”,“八月”:“0.00”,“九月”:“0.00”,“十月”:“0.00”,“十一月”:“0.00”,“十二月”:“0.00”);
让值=对象映射(Object.values);
console.log(值)代码>
作为控制台包装{max height:100%!important;top:0;}
您可以使用map()
和Object.values
Object.values(o) // Returns an array of values.
const arr=[{“一月”:“0.00”、“二月”:“0.00”、“mac”:“1271.00”、“四月”:“5.00”、“五月”:“0.00”、“六月”:“0.00”、“七月”:“0.00”、“八月”:“0.00”、“九月”:“0.00”、“十月”:“0.00”、“十一月”:“0.00”、“十二月”:“0.00”}]
const res=arr.map(x=>Object.values(x));
控制台日志(res)代码>您可以使用map()
和对象。值
Object.values(o) // Returns an array of values.
const arr=[{“一月”:“0.00”、“二月”:“0.00”、“mac”:“1271.00”、“四月”:“5.00”、“五月”:“0.00”、“六月”:“0.00”、“七月”:“0.00”、“八月”:“0.00”、“九月”:“0.00”、“十月”:“0.00”、“十一月”:“0.00”、“十二月”:“0.00”}]
const res=arr.map(x=>Object.values(x));
控制台日志(res)对象属性是无序的,因此使用Object.values()
的解决方案无法保证结果数组的顺序正确
您必须以正确的顺序获取各个值,并用它们构造一个新数组。预先定义一个月数组,并结合map()
操作将实现以下目的:
const months=[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月];
常量数据=[{“一月”:“0.00”,“二月”:“0.00”,“三月”:“1271.00”,“四月”:“5.00”,“五月”:“0.00”,“六月”:“0.00”,“七月”:“0.00”,“八月”:“0.00”,“九月”:“0.00”,“十月”:“0.00”,“十一月”:“0.00”,“十二月”:“0.00”);
const result=data.map(v=>months.map(m=>v[m]);
控制台日志(结果)对象属性是无序的,因此使用Object.values()
的解决方案无法保证结果数组的顺序正确
您必须以正确的顺序获取各个值,并用它们构造一个新数组。预先定义一个月数组,并结合map()
操作将实现以下目的:
const months=[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月];
常量数据=[{“一月”:“0.00”,“二月”:“0.00”,“三月”:“1271.00”,“四月”:“5.00”,“五月”:“0.00”,“六月”:“0.00”,“七月”:“0.00”,“八月”:“0.00”,“九月”:“0.00”,“十月”:“0.00”,“十一月”:“0.00”,“十二月”:“0.00”);
const result=data.map(v=>months.map(m=>v[m]);
控制台日志(结果)代码>您的输入数据只是一个具有唯一对象的数组,或者它可以有多个对象?您的输入数据只是一个具有唯一对象的数组,或者它可以有多个对象?这个答案完全忽略了JavaScript中对象属性无序的事实。您可能会按正确的顺序返回结果,但可能不会。它完全依赖于JavaScript引擎实现,这个答案完全忽略了JavaScript中对象属性无序的事实。您可能会按正确的顺序返回结果,但可能不会。它完全依赖于JavaScript引擎实现。您知道Object.getOwnPropertyNames()
是否按顺序迭代对象吗?我已经从中读过了,但我仍然不清楚是否有某种方法可以按照创建键的顺序遍历对象。@Shidersz if已经放弃了尝试去弄清楚它。存在各种各样的边缘情况,较旧的浏览器将不会遵循ECMAScript 2015/2016。如果我需要依赖顺序,我会使用Map
。当我使用having=>代码时,我的控制器会出错。如何解决这个问题?data.map(函数(v){returnmonths.map(函数(m){returnv[m];})})代码>但是说真的,如果你想支持这么老的浏览器,你应该研究BabelJS或者类似Transfile的东西。好的,谢谢@RobbyCornelissen。现在工作正常了!非常感谢。您知道Object.getOwnPropertyNames()
是否按顺序迭代对象吗?我已经从中读过了,但我仍然不清楚是否有某种方法可以按照创建键的顺序遍历对象。@Shidersz if已经放弃了尝试去弄清楚它。存在各种各样的边缘情况,较旧的浏览器将不会遵循ECMAScript 2015/2016。如果我需要依赖顺序,我会使用Map
。当我使用having=>代码时,我的控制器会出错。如何解决这个问题?data.map(函数(v){returnmonths.map(函数(m){returnv[m];})})代码>但是说真的,如果你想支持这么老的浏览器,你应该研究BabelJS或者类似Transfile的东西。好的,谢谢@RobbyCornelissen。现在工作正常了!非常感谢。