如何在Javascript中进入n维对象数组?
我有一个n维x n的对象数组是未知的。 以下是数据示例:如何在Javascript中进入n维对象数组?,javascript,Javascript,我有一个n维x n的对象数组是未知的。 以下是数据示例: Data = [{"value":{"Id":"1","Text":"abcd","Parent":""},"children":[{"value":{"Id":"2","Text":"abcd","Parent":"1"},"children":[{"value":{"Id":"3","Text":"abcd","Parent":"1"},"children":[{"value":... 我想在这个数组中读取对象数据。如何在javas
Data = [{"value":{"Id":"1","Text":"abcd","Parent":""},"children":[{"value":{"Id":"2","Text":"abcd","Parent":"1"},"children":[{"value":{"Id":"3","Text":"abcd","Parent":"1"},"children":[{"value":...
我想在这个数组中读取对象数据。如何在javascript中实现这一点?您可以执行如下递归算法:
function travel(d){
if (d[0] && d[0].value){
console.log(d[0].value.Id);
}
if (d[0].children && typeof d[0].children == "object"){
// if children exist call function recursively
travel(d[0].children);
}
}
travel(Data);
请查看将您孩子的Id输出到控制台(F12)的设备。这是一个简化的版本,例如,您必须考虑数组中多个孩子的存在。但是我想你明白了。你可以做如下递归算法:
function travel(d){
if (d[0] && d[0].value){
console.log(d[0].value.Id);
}
if (d[0].children && typeof d[0].children == "object"){
// if children exist call function recursively
travel(d[0].children);
}
}
travel(Data);
请查看将您孩子的Id输出到控制台(F12)的设备。这是一个简化的版本,例如,您必须考虑数组中多个孩子的存在。但是我想你明白了。使用递归,假设你想要的只是值,使用类似的东西
var data = [
{
"value": {
"Id": "1",
"Text": "abcd",
"Parent": ""
},
"children": [
{
"value": {
"Id": "2",
"Text": "abcd",
"Parent": "1"
},
"children": [
{
"value": {
"Id": "3",
"Text": "abcd",
"Parent": "1"
}
}
]
}
]
}
];
function travel(data){
for(var i =0;i< data.length;++i){
if(data[i].hasOwnProperty('value')){
console.log('Value: ',data[i].value);
}
if(data[i].hasOwnProperty('children')){
travel(data[i].children);
}
}
}
function collect(data) {
var res= [];
function travelAux(data){
for(var i =0;i< data.length;++i){
if(data[i].hasOwnProperty('value')){
res.push(data[i].value);
}
if(data[i].hasOwnProperty('children')){
travelAux(data[i].children);
}
}
}
travelAux(data);
return res;
}
travel(data);
var数据=[
{
“价值”:{
“Id”:“1”,
“文本”:“abcd”,
“父项”:”
},
“儿童”:[
{
“价值”:{
“Id”:“2”,
“文本”:“abcd”,
“父项”:“1”
},
“儿童”:[
{
“价值”:{
“Id”:“3”,
“文本”:“abcd”,
“父项”:“1”
}
}
]
}
]
}
];
功能行程(数据){
对于(变量i=0;i
使用递归,假设您想要的只是值,请使用类似的东西
var data = [
{
"value": {
"Id": "1",
"Text": "abcd",
"Parent": ""
},
"children": [
{
"value": {
"Id": "2",
"Text": "abcd",
"Parent": "1"
},
"children": [
{
"value": {
"Id": "3",
"Text": "abcd",
"Parent": "1"
}
}
]
}
]
}
];
function travel(data){
for(var i =0;i< data.length;++i){
if(data[i].hasOwnProperty('value')){
console.log('Value: ',data[i].value);
}
if(data[i].hasOwnProperty('children')){
travel(data[i].children);
}
}
}
function collect(data) {
var res= [];
function travelAux(data){
for(var i =0;i< data.length;++i){
if(data[i].hasOwnProperty('value')){
res.push(data[i].value);
}
if(data[i].hasOwnProperty('children')){
travelAux(data[i].children);
}
}
}
travelAux(data);
return res;
}
travel(data);
var数据=[
{
“价值”:{
“Id”:“1”,
“文本”:“abcd”,
“父项”:”
},
“儿童”:[
{
“价值”:{
“Id”:“2”,
“文本”:“abcd”,
“父项”:“1”
},
“儿童”:[
{
“价值”:{
“Id”:“3”,
“文本”:“abcd”,
“父项”:“1”
}
}
]
}
]
}
];
功能行程(数据){
对于(变量i=0;i
那就是。你说的“读取对象数据”是什么意思?你到底想去哪里旅行?我的意思是得到{“Id”:“1”,“Text”:“abcd”,“Parent”:“}@josephdreamer只要递归是有限的(你是从无限回归中说的)?@josephdreamer:或者……那就是。你说的“读取对象数据”是什么意思?你到底想去哪里旅行?我的意思是得到{“Id”:“1”,“Text”:“abcd”,“Parent”:“}@josephdreamer递归有什么问题,只要它是有限的(你说的是无限回归)?@josephdreamer:或者…