从JavaScript对象创建数组
我有一些数据如下所示:从JavaScript对象创建数组,javascript,Javascript,我有一些数据如下所示: { "obj": [ { "name": "name1", "age": "24" }, { "name": "name2", "age": "17" } ] } 我需要做的是从它创建两个数组 例如: namelist[]; agelist[]; 因此,结果将是: namelist: ['name1', 'name2']; agelist: [24, 17]; 我的问题是,
{
"obj":
[
{
"name": "name1",
"age": "24"
},
{
"name": "name2",
"age": "17"
}
]
}
我需要做的是从它创建两个数组
例如:
namelist[];
agelist[];
因此,结果将是:
namelist: ['name1', 'name2'];
agelist: [24, 17];
我的问题是,我如何做到这一点?使用jquery映射函数,或者您可以使用javascript for loop循环对象并将其推入数组,然后使用
push()
函数。提及
var namelist = [];
var agelist = [];
for(var i in obj.obj){
namelist.push(obj.obj[i].name);
agelist.push(obj.obj[i].age);
}
console.log(namelist, agelist);
Jquery
var数据={
“obj”:[
{
“名称”:“名称1”,
“年龄”:“24”
},
{
“名称”:“名称2”,
“年龄”:“17”
}
]
}
变量名称=$.map(data.obj,函数(值,索引){
返回value.name;
});
变量年龄=$.map(data.obj,函数(值,索引){
返回值.age;
});
console.log(名称);
控制台日志(年龄)代码>
这就是你想要的吗
var zz={
"obj": [
{
"name": "name1",
"age": "24"
},
{
"name": "name2",
"age": "17"
}
]
}
namelist=[];
agelist=[];
zz.obj.forEach(function(rec){
namelist.push(rec.name);
agelist.push(rec.age);
})
console.log(namelist,agelist)
如果您没有使用Jquery,那么:
var arr = Object.keys(myObj).map(function (key)
{ return obj[key];
});`
您可以使用此ES6代码,并使用酉加号将年龄作为数字。假设对象存储在变量数据中
:
var namelist = data.obj.map( o => o.name );
var agelist = data.obj.map( o => +o.age );
var数据={
“obj”:[
{
“名称”:“名称1”,
“年龄”:“24”
},
{
“名称”:“名称2”,
“年龄”:“17”
}
]
};
var namelist=data.obj.map(o=>o.name);
var agelist=data.obj.map(o=>+o.age);
控制台日志(名称列表);
控制台日志(agelist)代码>1。没有jQuery标记;2.什么是myObj
?3.第一种方法是创建一个arraysmyObj数组,它是他希望转换的对象的名称,那么您的解决方案就毫无意义了。他必须为“obj”
中的每个条目调用代码段,该条目只会返回一个值数组,或者如果他对“obj”
是其属性的对象调用该代码段,则会生成一个包含“obj”
值的数组(对象数组)您在哪里看到jQuery引用?@Andreas我理解is no jQuery标记,也就是为什么我在回答中还添加了关于如何处理javascript解决方案的内容。但由于你强调了这一点,我编辑了我的答案。如果他愿意的话,我只是给了他一个选项。agelist数组可以是整数而不是字符串吗?@MarkcceEros你可以使用push(parseInt(rec,age)),它将是一个数字
var namelist = data.obj.map( o => o.name );
var agelist = data.obj.map( o => +o.age );