如何从数组中删除所有“地图”属性

时间:2019-03-03 14:05:01

标签: javascript jquery

从此数组:

[{
  "map": {
    "name": "2",
    "y": 2
  }
}, {
  "map": {
    "name": "4",
    "y": 17494
  }
}, {
  "map": {
    "name": "3",
    "y": 2
  }
}, {
  "map": {
    "name": "1",
    "y": 1
  }
}]

我想要这个数据结构:

[{
  "name": "2",
  "y": 2
}, {
  "name": "4",
  "y": 17494
}, {
  "name": "3",
  "y": 2
}, {
  "name": "1",
  "y": 1
}]

我该怎么做?

5 个答案:

答案 0 :(得分:4)

使用JavaScript映射:

    let json = [{
  "map": {
    "name": "2",
    "y": 2
  }
}, {
  "map": {
    "name": "4",
    "y": 17494
  }
}, {
  "map": {
    "name": "3",
    "y": 2
  }
}, {
  "map": {
    "name": "1",
    "y": 1
  }
}];
let result = json.map(item => item.map);
result.forEach(i => console.log(i));

上面的代码显示:

{name: "2", y: 2}
{name: "4", y: 17494}
{name: "3", y: 2}
{name: "1", y: 1}

请参阅:

答案 1 :(得分:2)

您好,您可以通过遍历数组并提取所需的输出,通过纯js​​来完成此操作。请检查下面的代码。

var arr = [{ "map": { "name": "2", "y": 2 } }, { "map": { "name": "4", "y": 17494 } }, { "map": { "name": "3", "y": 2 } }, { "map": { "name": "1", "y": 1 } }];
var resultArr = arr.map(function(item) {
    return item.map;
})

答案 2 :(得分:2)

使用Array.prototype.reduce()

let input=[{
    "map": {
        "name": "2",
        "y": 2
    }
}, {
    "map": {
        "name": "4",
        "y": 17494
    }
}, {
    "map": {
        "name": "3",
        "y": 2
    }
}, {
    "map": {
        "name": "1",
        "y": 1
    }
}]





let revisedarray=input.reduce((acc,val)=>{
 acc.push(val.map);
 return acc;

},[])

console.log(revisedarray)

有关数组精简的更多信息,请查看-mdn docs

答案 3 :(得分:1)

ES6短语法,这里A是对象的原始数组,而A2是对象的输出数组

let A2 = A.map(o=>o.map);

答案 4 :(得分:0)

let jsonString = your_jsonString;
var blankArr = [];
let result = jsonString.map(item => item.map);
result.forEach(i => blankArr.push(i));
console.log(blankArr);