如何在JavaScript中将对象值转换为新数组
我试图简化以下状态:如何在JavaScript中将对象值转换为新数组,javascript,arrays,reactjs,sorting,object,Javascript,Arrays,Reactjs,Sorting,Object,我试图简化以下状态: { "name": "bulbasaur", "picture": "https://raw", "height": 7, "weight": 69, "types": [ { "slot": 1, "type": { "name": "poison", "url": "https://poke" } }, { "slot": 2
{
"name": "bulbasaur",
"picture": "https://raw",
"height": 7,
"weight": 69,
"types": [
{
"slot": 1,
"type": {
"name": "poison",
"url": "https://poke"
}
},
{
"slot": 2,
"type": {
"name": "grass",
"url": "https://poke"
}
}
]}
变成这样:
{
"name": "bulbasaur",
"picture": "https://raw",
"height": 7,
"weight": 69,
"types": [ "poison", "grass" ]
}
另外,我想提到的是,我有一个数组,其中有151个。不是每个对象都包含两种类型;有些只包含一个
我相信这就是我迄今为止尝试的大部分方法都不起作用的原因。提前感谢您的帮助 尝试使用map
let obj={name:“bulbasaur”,图片:https://raw,身高:7,体重:69,类型:[{插槽:1,类型:{名称:“毒药”,url:https://poke" }}]};
obj.types=obj.types.map(Type=>Type.Type.name);
控制台日志(对象类型)代码>尝试使用map
let obj={name:“bulbasaur”,图片:https://raw,身高:7,体重:69,类型:[{插槽:1,类型:{名称:“毒药”,url:https://poke" }}]};
obj.types=obj.types.map(Type=>Type.Type.name);
控制台日志(对象类型)代码>我认为这就是您想要的,您需要将此代码段添加到数据集的循环中,并将其推送到新数组中:
const Obj={
“名称”:“bulbasaur”,
“图片”:https://raw",
“高度”:7,
“重量”:69,
“类型”:[{
“槽”:1,
“类型”:{
“名称”:“毒药”,
“url”:”https://poke"
}}, {
“槽”:2,
“类型”:{
“名称”:“草”,
“url”:”https://poke"
}}
]};
常数newObj={
…Obj,
类型:对象类型映射((el)=>el.type.name),
}
console.log(newObj)
我想这就是您想要的,您需要将此代码段添加到数据集的循环中,并将其推送到新数组中:
const Obj={
“名称”:“bulbasaur”,
“图片”:https://raw",
“高度”:7,
“重量”:69,
“类型”:[{
“槽”:1,
“类型”:{
“名称”:“毒药”,
“url”:”https://poke"
}}, {
“槽”:2,
“类型”:{
“名称”:“草”,
“url”:”https://poke"
}}
]};
常数newObj={
…Obj,
类型:对象类型映射((el)=>el.type.name),
}
log(newObj)
通过使用Ma'moun othman提供的逻辑,我能够解决我需要的问题
"name": "bulbasaur",
"picture": "https://raw",
"height": 7,
"weight": 69,
"types" : [{
"slot": 1,
"type": {
"name": "poison",
"url":"https://poke"
}}, {
"slot": 2,
"type": {
"name": "grass",
"url":"https://poke"
}}
]};
const newObj = {
...Obj,
types: Obj.types.map((el) => el.type.name),
}
console.log(newObj)
通过使用Ma'moun othman提供的逻辑,我能够解决我需要的问题
"name": "bulbasaur",
"picture": "https://raw",
"height": 7,
"weight": 69,
"types" : [{
"slot": 1,
"type": {
"name": "poison",
"url":"https://poke"
}}, {
"slot": 2,
"type": {
"name": "grass",
"url":"https://poke"
}}
]};
const newObj = {
...Obj,
types: Obj.types.map((el) => el.type.name),
}
console.log(newObj)
所以数组映射就是你需要的,我假设=
真的是:
那么数组映射就是你需要的,我假设=
真的是:
非常感谢!这正是我所需要的。我对堆栈溢出是新手。我试着给你的帖子投票,但上面说的是只为15岁以上的人工作。我如何接受它作为答案?我对你的问题投了赞成票,你现在应该可以投赞成票了:P,你也可以看到箭头下面有一个✔️代码>灰色图标,点击即可接受答案。非常感谢!这正是我所需要的。我对堆栈溢出是新手。我试着给你的帖子投票,但上面说的是只为15岁以上的人工作。我如何接受它作为答案?我对你的问题投了赞成票,你现在应该可以投赞成票了:P,你也可以看到箭头下面有一个✔️代码>灰色图标,点击它接受答案。