Javascript 如何用JS解析对象数组

Javascript 如何用JS解析对象数组,javascript,Javascript,如何使用JavaScript解析以下对象数组以获取值D1、S1等 { "D1": { "C1": { "S2": [ ["P1", "P4"] ], "S1": [ ["P2"] ] }, "C2": { "S2": [ ["P3", "P7"] ] }, "C3": { "S4": [ ["P6"] ] } }, "D3": { "C3": { "S3": [ ["

如何使用JavaScript解析以下对象数组以获取值D1S1

{
 "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。请使用代码示例按钮。