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对象中的值创建JavaScript数组_Javascript_Arrays_Javascript Objects - Fatal编程技术网

使用JavaScript对象中的值创建JavaScript数组

使用JavaScript对象中的值创建JavaScript数组,javascript,arrays,javascript-objects,Javascript,Arrays,Javascript Objects,我是JavaScript新手,我有一个JavaScript对象 [{G4S: "31"},{G4S: "23"},{G4S: "31"},{G4S: "49"},{G4S: "110"},{G4S: "115"},{G4S: "104"}] 我想创建一个数组,如 [31, 23, 31, 49, 110, 115, 104] 我提到了一些链接,但它们展示了如何从数组创建对象,而不是从对象创建数组。 我这样试过: for (var i = 0; i < chartDataG4S.l

我是JavaScript新手,我有一个JavaScript对象

[{G4S: "31"},{G4S: "23"},{G4S: "31"},{G4S: "49"},{G4S: "110"},{G4S: "115"},{G4S: "104"}]
我想创建一个数组,如

[31, 23, 31, 49, 110, 115, 104]
我提到了一些链接,但它们展示了如何从数组创建对象,而不是从对象创建数组。

我这样试过:

for (var i = 0; i < chartDataG4S.length; i++) {
        var data = chartDataG4S[i]['G4S'];
        console.log(data);
      }
for(var i=0;i

但它不会创建数组。我被这个问题困扰了,欢迎任何帮助,提前感谢。

使用
.map
提取每个对象中的
G4S
属性,并强制转换为一个数字,在此过程中创建一个新数组:

const input=[{G4S:“31”}、{G4S:“23”}、{G4S:“31”}、{G4S:“49”}、{G4S:“110”}、{G4S:“115”}、{G4S:“104”}];
const output=input.map({G4S})=>Number(G4S));

控制台日志(输出)您只需使用
.map()

let data=[{G4S:“31”},{G4S:“23”},{G4S:“31”},{G4S:“49”},{G4S:“110”},{G4S:“115”},{G4S:“104”};
让result=data.map({G4S})=>Number(G4S));
控制台日志(结果)试试这个

var newArray = [];  // New array declaration to be used to push the values.
var objArray = [{G4S: "31"},{G4S: "23"},{G4S: "31"},{G4S: "49"},{G4S: "110"},{G4S: "115"},{G4S: "104"}];  // Your array of objects

objArray.forEach(function(elem){
    newArray.push(elem.G4S);
});

您可以通过简单的步骤来实现这一点,使用
map
获取对象所有值的数组,并将所有值合并到一个数组中

let data=[{G4S:“31”},{G4S:“23”},{G4S:“31”},{G4S:“49”},{G4S:“110”},{G4S:“115”},{G4S:“104”};
//第一步
设arr=data.map(da=>Object.values(da));//不考虑钥匙
//步骤2
让结果=arr.reduce((acc,val)=>acc.concat(val),[]);
控制台日志(结果);
//一艘班轮。

console.log(data.map(da=>Object.values(da)).reduce((acc,val)=>acc.concat(val),[])
这基本上是一个数组,您可以这样做

let arr = [{G4S: "31"},{G4S: "23"},{G4S: "31"},{G4S: "49"},{G4S: "110"},{G4S: "115"},{G4S: "104"}];
let arr1 =[];
for(let i=0; i<are.length; i++)
    arr1.push(are[i].G4S);
让arr=[{G4S:“31”},{G4S:“23”},{G4S:“31”},{G4S:“49”},{G4S:“110”},{G4S:“115”},{G4S:“104”};
设arr1=[];
对于(设i=0;i
让chartDataG4S=[{G4S:“31”},{G4S:“23”},{G4S:“31”},{G4S:“49”},{G4S:“110”},{G4S:“115”},{G4S:“104”};
让result=chartDataG4S.map(o=>Number(o.G4S));

console.log(结果)
太好了,谢谢,伙计,它工作得很好。简单问一下,为什么我们使用const而不是var?
var
有一些问题会让你绊倒——例如,它有非直观的函数作用域,而不是块作用域,并且会被提升。
const
没有这两个问题,另外,当你看到
const时
,您知道以下变量永远不会被重新分配,这使得阅读和理解代码更容易。最好尽可能使用
const
,不能使用时使用
let
(这没有
var
的问题,但可以重新分配),并且永远不要使用
var
。(在构建过程中传输到ES5以支持古老的浏览器),因此您只需要使用data.push而不是data=代码中的某个内容,并在循环外部初始化数据数组