使用JavaScript对象中的值创建JavaScript数组
我是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
[{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=代码中的某个内容,并在循环外部初始化数据数组