关于#javascript#的问题:拿出所有的id和name{"id": 7,"name": "测试","children": [{"id": 10,"name": "来了"}]}

拿出所有的id和name

{
"id": 7,
"name": "测试",
"children": [
{
"id": 10,
"name": "来了"
}
]
}

直接上代码

function getAllIdsAndNames(data) {
  var result = [];
  
  //获取当前节点的id和name
  var id = data.id;
  var name = data.name;
  result.push({ id: id, name: name });
  
  //如果当前节点有子节点,则递归获取子节点的id和name
  if (data.children && data.children.length > 0) {
    for (var i = 0; i < data.children.length; i++) {
      var childIdsAndNames = getAllIdsAndNames(data.children[i]);
      result = result.concat(childIdsAndNames);
    }
  }
  
  return result;
}

//使用递归函数获取所有id和name的值
var allIdsAndNames = getAllIdsAndNames(data);

//打印所有id和name的值
console.log(allIdsAndNames);