Javascript 将对象推送到另一个数组
我有一个这样的数组Javascript 将对象推送到另一个数组,javascript,jquery,Javascript,Jquery,我有一个这样的数组 var assets = [ { "name": "male", "type": [ { name: "tommy", y: 512, }, { name: "rian", y: 812, }, ], }, { "name": "female", "type": [
var assets = [
{
"name": "male",
"type": [
{
name: "tommy",
y: 512,
},
{
name: "rian",
y: 812,
},
],
},
{
"name": "female",
"type": [
{
name: "mariam",
y: 512,
},
{
name: "linda",
y: 412,
},
],
}
];
[Array(2)]
0:Array(2)
0:{name: "mariam", y: 512}
1:{name: "linda", y: 412}
length:2
__proto__: Array(0)
length:1
__proto__: Array(0)
(2) [{…}, {…}]
0:{name: "mariam", y: 512}
1:{name: "linda", y: 412}
length:2
__proto__:Array(0)
并且有一个按钮,其标题与对象的名称相同
<button title="male">this is male</button>
<button title="female">this is female</button>
我得到了这样的输出
var assets = [
{
"name": "male",
"type": [
{
name: "tommy",
y: 512,
},
{
name: "rian",
y: 812,
},
],
},
{
"name": "female",
"type": [
{
name: "mariam",
y: 512,
},
{
name: "linda",
y: 412,
},
],
}
];
[Array(2)]
0:Array(2)
0:{name: "mariam", y: 512}
1:{name: "linda", y: 412}
length:2
__proto__: Array(0)
length:1
__proto__: Array(0)
(2) [{…}, {…}]
0:{name: "mariam", y: 512}
1:{name: "linda", y: 412}
length:2
__proto__:Array(0)
如何把它变成这样
var assets = [
{
"name": "male",
"type": [
{
name: "tommy",
y: 512,
},
{
name: "rian",
y: 812,
},
],
},
{
"name": "female",
"type": [
{
name: "mariam",
y: 512,
},
{
name: "linda",
y: 412,
},
],
}
];
[Array(2)]
0:Array(2)
0:{name: "mariam", y: 512}
1:{name: "linda", y: 412}
length:2
__proto__: Array(0)
length:1
__proto__: Array(0)
(2) [{…}, {…}]
0:{name: "mariam", y: 512}
1:{name: "linda", y: 412}
length:2
__proto__:Array(0)
如果另一个数组
数据
(在本例中)为空
您可以像下面这样直接分配
var-assets=[{“name”:“male”,“type”:[{name:“tommy”,y:512,},{name:“rian”,y:812,},},},},{“name:“female”,“type”:[{name:“mariam”,y:512,},{name:“linda”,y:412,},},},},},}]
$('button')。在('click',function()上{
var attr=$(this.attr('title');
var obj=assets.find(函数(obj){return obj.name==attr;});
数据=对象类型;
控制台日志(数据);
});代码>
这是男性
这是女性
摆脱数据=[]
和数据。推送(…)
。直接使用obj.type
,因为它已经是您想要的格式了。那么如何推送到另一个数组呢?在这种情况下,您可以使用push()
-但是为什么需要这样做呢?数据已经是您的问题所要求的格式-正如您在本例中所看到的:为什么要将concat
与空数组一起使用?与刚才的data=obj.type相同
这里它是空数组,但如果数组不是空的,那么我们就不能像你说的那样直接赋值。(我只是给出两种情况下的解决方案)@Barmarhe只是想从对象中得到列表,问题中没有任何东西建议它应该添加到任何已经存在的对象中。标题是“将对象推到另一个数组中”,他没有说另一个数组是否为空。所以用海螺。但我同意你的观点,如果另一个数组是空的,那么concat就没有意义了。@BarmarHis代码有data=[]代码>在其中,因此数组最初为空。