Javascript 如何用JS解析对象数组
如何使用JavaScript解析以下对象数组以获取值D1、S1等Javascript 如何用JS解析对象数组,javascript,Javascript,如何使用JavaScript解析以下对象数组以获取值D1、S1等 { "D1": { "C1": { "S2": [ ["P1", "P4"] ], "S1": [ ["P2"] ] }, "C2": { "S2": [ ["P3", "P7"] ] }, "C3": { "S4": [ ["P6"] ] } }, "D3": { "C3": { "S3": [ ["
{
"D1": {
"C1": {
"S2": [
["P1", "P4"]
],
"S1": [
["P2"]
]
},
"C2": {
"S2": [
["P3", "P7"]
]
},
"C3": {
"S4": [
["P6"]
]
}
},
"D3": {
"C3": {
"S3": [
["P5"]
]
}
}
}
所需输出
我需要拿出钥匙,按照以下方式安排
D1
C1
S2
p1 p4
s1
p2
请尝试以下代码,我正在控制台日志中打印,您可以推送到字符串数组或任何内容:
var data=
{
"D1": {
"C1": {
"S2": [
["P1", "P4"]
],
"S1": [
["P2"]
]
},
"C2": {
"S2": [
["P3", "P7"]
]
},
"C3": {
"S4": [
["P6"]
]
}
},
"D3": {
"C3": {
"S3": [
["P5"]
]
}
}
}
getkeys(data);
function getkeys(data){
for (var key in data){
console.log(key);
if(Array.isArray(data[key])){
for(var i=0;i<data[key][0].length;i++){
console.log(data[key][0][i]);
}
}
else{
getkeys(data[key])
}
}
}
var数据=
{
“D1”:{
“C1”:{
“S2”:[
[“P1”、“P4”]
],
“S1”:[
[“P2”]
]
},
“C2”:{
“S2”:[
[“P3”、“P7”]
]
},
“C3”:{
“S4”:[
[“P6”]
]
}
},
“D3”:{
“C3”:{
“S3”:[
[“P5”]
]
}
}
}
获取密钥(数据);
函数getkeys(数据){
for(var输入数据){
控制台日志(键);
if(Array.isArray(数据[key])){
对于(var i=0;i非常容易,使用了.replace()
和.match()
字符串原型
让我们假设本例中的objectArray
是JSON表示法中的对象
objectArray = JSON.parse(objectArray);
objectArray = objectArray.replace(/[^a-zA-Z1-9 ]/g, "");
objectArray = objectArray.match(/.{1,2}/g);
返回
["D1", "C1", "S2", "P1", "P4", "S1", "P2", "C2", "S2", "P3", "P7", "C3", "S4", "P6", "D3", "C3", "S3", "P5"]
我们现在有了一个字符串数组。只要您继续使用两个字符,这将匹配,否则它将失败,您将需要一个更优雅的解决方案。请描述真正的问题,您已经解决了。这看起来像是此问题的后续操作,在孤立视图中看起来有点奇怪。请添加您尝试过的内容。查看下面的示例s好的,我已经通过编辑更正了这个问题的格式。在发布程序输出时,我们在这里不使用Blockqoute。请使用代码示例按钮。