考虑有一个我们想要转换的json对象。
const my_object = {
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
有几种解决方案可供使用:
1.
Object.keys() 和
Object.values() 这些函数可以将任何对象转换为数组。一个返回包含所有键的数组,另一个返回所有值的数组:
console.log(Object.keys(my_object))
console.log(Object.values(my_object))
我不确定是否理解了最初的问题,但解决方案可能是:
data.addRows(Object.values(my_object));
2.
Object.entries() 这个函数是上面两个函数的混合体:
console.log(Object.entries(my_object))
这段话的意思是:“虽然这并不适用于最初的问题,但这个函数非常有用,我不得不提一下它。特别是当'value_'是嵌套对象时。假设我们的值是像这样的对象:”
const my_object = {
"key1": {"a": 1, "b": 2},
"key2": {"y": 25, "z": 26},
"key3": {"much": "stuff"}
}
我们想要最后得到这样一个数组。
my_array = [
{"key": "key1", "a": 1, "b": 2},
{"key": "key2", "y": 25, "z": 26},
{"key": "key3", "much": "stuff"}
]
我们需要使用
Object.entries()
来获取所有键和它们的值。我们将从一个过于详细的代码开始:
my_array = Object.entries(my_object).map(function(entry){
key = entry[0];
value = entry[1];
nested_object = value;
nested_object.key = key;
return nested_object;
});
console.log(my_array);
我们可以利用
展开运算符来简化我们的代码:
my_array = Object.entries(my_object).map(entry => {"key": entry[0], ...entry[1]});
console.log(my_array);
string.split(',')
- adeneo