Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.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 - Fatal编程技术网

从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 );