如何解决Javascript:将 JSON 解析为字符串数组
我有以下 JSON 以下面的 set、key 和 value 方式定义。
[{
"set1": {
"key1": "value1"
},"set2": {
"key2": "value2"
},"set3": {
"key3": "value3"
},"set4": {
"key4": "value4"
}
}]
我想知道如何使用普通/本机 javascript 以下面的方式获取仅包含各种值的字符串数组。
["value1","value2","value3","value4"]
我尝试过使用 Object.keys 和 Object.values 但仍然没有运气。了解如何在纯 javascript 中处理它而不使用任何第三方库会很有帮助。
解决方法
解决办法:
const data = {
"set1": {
"key1": "value1"
},"set2": {
"key2": "value2"
},"set3": {
"key3": "value3"
},"set4": {
"key4": "value4"
}
}
var result = Object.keys(data).map(_ => Object.values(data[_])[0]);
console.log(result);
这输出 [ 'value1','value2','value3','value4' ]
,const data = [{
"set1": {
"key1": "value1"
},"set4": {
"key4": "value4"
}
}]
console.log(data.reduce((values,o) => {
Object.values(o).forEach(v =>
values.push(...Object.values(v)));
return values;
},[]));
这将涵盖具有多个数组对象的情况。
let data_array = [
{
"set1": {
"key1": "value1"
},"set2": {
"key2": "value2"
},"set3": {
"key3": "value3"
},"set4": {
"key4": "value4"
}
},{
"set5": {
"key1": "value5"
},"set6": {
"key2": "value1"
},"set7": {
"key3": "value2"
},"set8": {
"key4": "value3"
}
}
];
let result = data_array.reduce((accumulator,currentValue)=> {
accumulator.push(...Object.keys(currentValue).map((key) => Object.values(currentValue[key])[0]));
return accumulator;
},[]);
console.log(result)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。