Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 如何在angularjs中将对象转换为数组_Javascript_Arrays_Json_Angularjs - Fatal编程技术网

Javascript 如何在angularjs中将对象转换为数组

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

我正在将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.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。现在工作正常了!非常感谢。