如何从json数组中删除名称字段?

时间:2019-07-18 17:14:01

标签: javascript json object

我有一个像这样的json数组:

(3) [{…}, {…}, {…}]
0: {Id: 1, Name: "bask"}
1: {Id: 2, Name: "voll"}
2: {Id: 3, Name: "badminton"} 

我想把它变成这样:

{1:"bask",2:"voll",3:"badminton"}

6 个答案:

答案 0 :(得分:3)

您可以将Object.fromEntries与映射的键/值对一起使用。

var array = [{ Id: 1, Name: "bask" }, { Id: 2, Name: "voll" }, { Id: 3, Name: "badminton" }],
    object = Object.fromEntries(array.map(({ Id, Name }) => [Id, Name]));

console.log(object);

答案 1 :(得分:2)

您可以使用reduce遍历数组并构建所需的key/value对对象

let data = [{Id: 1, Name: "bask"},{Id: 2, Name: "voll"},{Id: 3, Name: "badminton"}]

let output = data.reduce((op, {Id, Name}) => {
  op[Id] = Name
  return op
},{})

console.log(output)

答案 2 :(得分:0)

您可以使用reduce()进行此操作:

var a = [
  {Id: 1, Name: "bask"},
  {Id: 2, Name: "voll"},
  {Id: 3, Name: "badminton"}
]

b = a.reduce((acc, item) => {
  acc[item.Id] = item.Name;
  return acc;
}
console.log(b);

答案 3 :(得分:0)

您可以用不同的方式来做到这一点,这里是其中一种。

let dataArray = [
  {id: 1, name: 'bask'},
  {id: 2, name: 'voll'},
  {id: 3, name: 'badminton'}
]

let ouputObject = {}

dataArray.map(data => {
  ouputObject[`${data.id}`] = data.name
})

console.log(ouputObject)

outputObject将是

Object {
  1: "bask",
  2: "voll",
  3: "badminton"
}

答案 4 :(得分:0)

您可以签出reduce()功能!

let array = [
    {Id: 1, Name: "bask"},
    {Id: 2, Name: "voll"},
    {Id: 3, Name: "badminton"} 
];
console.log(_.reduce(array, function(result, obj){
    result[obj.Id] = obj.Name;
  return result;
}, {}));

您可以使用许多其他实用程序签出lodash很棒的库!

答案 5 :(得分:0)

使用Array.reduce()

var arr = [{
	Id: 1,
	Name: "bask"
}, {
	Id: 2,
	Name: "voll"
}, {
	Id: 3,
	Name: "badminton"
}];

var reduceObj = arr.reduce(function(result, currentElement) {
   result[currentElement.Id] = currentElement.Name;
   return result;
}, {});

console.log(reduceObj);

使用Array.map()

var arr = [{
	Id: 1,
	Name: "bask"
}, {
	Id: 2,
	Name: "voll"
}, {
	Id: 3,
	Name: "badminton"
}];

var mapObject = {}

arr.map(obj => {
  mapObject[obj.Id] = obj.Name
})

console.log(mapObject);