JSON操作-Javascript-添加新密钥并转移数据

时间:2018-08-16 14:13:19

标签: javascript arrays json

我正在学习操作JSON数据,并且试图找出如何将以下JSON融合到我想要的内容中,如下所示:

对于此类问题,我应该学习的任何指向函数/术语/概念的指针将不胜感激!谢谢

JSON对象

{
  car: 1,
  van: 5,
  cat: 99999999999999999999999
}

所需结果:

items: [ 
  { "type": "car", "value": "1"},
  { "type": "van", "value": "5"},
  { "type": "cat", "value": "99999999999999999999999"}
]

4 个答案:

答案 0 :(得分:1)

您可以结合使用Object.entriesArray.prototype.map

const obj = { car: 1, van: 5, cat: 99999999999999999999999 };

let list = Object.entries(obj)  // [["car",1],["van",5],["cat",99999999999999999999999]]
    .map(x => ({ type: x[0], value: x[1] }));

console.log(list);

或者,加上一些destructuring

const obj = { car: 1, van: 5, cat: 99999999999999999999999 };

let list = Object.entries(obj)
    .map(([type, value]) => ({ type, value }));

console.log(list);

map的回调:

([type, value]) => ({ type, value })

将数组作为参数:[type, value]。该数组中的第一个值分配给type,第二个值分配给value

然后,我们使用shorthand form在返回的对象中设置这些值:

=> ({ type, value })

答案 1 :(得分:0)

Object.keys将返回: if(view is EditText) { //do stuff } ;

在此数组上,您可以使用Array的map函数,该函数创建一个新数组,并在调用数组中的每个元素上调用提供的函数。

[DataContract] // This was missing
enum TestEnum
{ 
    // ...
}

@GustavMahler希望您能理解。要了解有关数组函数的更多信息,您应该查看映射,归约和过滤。

答案 2 :(得分:0)

我是初学者。我试图解决问题,这是我能想到的最好的方法,并在Node.js 10中进行了测试。

const obj = {"car": 1, "van": 5, "cat": 999999}
const items = []
for (let key in obj) {
    items.push({"type": key, "value": obj[key]})
}
console.log(items)

让我有点困惑的是,我正在研究for..in与for..of之间的区别。

答案 3 :(得分:-1)

这个使用object.keys

let js = {car:1, van:5, cat:9999}
Object.keys(js).map( x => ({type: x, value: js[x] }) )
[ { type: 'car', value: 1 },
  { type: 'van', value: 5 },
  { type: 'cat', value: 9999 } ]