我正在学习操作JSON数据,并且试图找出如何将以下JSON融合到我想要的内容中,如下所示:
对于此类问题,我应该学习的任何指向函数/术语/概念的指针将不胜感激!谢谢
JSON对象
{
car: 1,
van: 5,
cat: 99999999999999999999999
}
所需结果:
items: [
{ "type": "car", "value": "1"},
{ "type": "van", "value": "5"},
{ "type": "cat", "value": "99999999999999999999999"}
]
答案 0 :(得分:1)
您可以结合使用Object.entries
和Array.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 } ]