在嵌套的 json 对象中插入数据
insertafter data in nested json object
我有一个 json 对象数据,格式如下。因为我需要在特定 ID 之后插入一些新记录。
[
{
"id":"1",
"name":"one",
"children":[
{
"id":"4",
"name":"four",
"children":[
]
},
{
"id":"5",
"name":"five",
"children":[
]
},
{
"id":"6",
"name":"six",
"children":[
]
}
]
}
]
例如:我的 ID 为 5,还有新的 JSON 对象({"id":"new data","name":"new data","children":[]})。那么新数据应该在 id 5 之后插入。是否有任何可能的方法在某个特定的 id 之后插入。
[
{
"id":"1",
"name":"one",
"children":[
{
"id":"4",
"name":"four",
"children":[
]
},
{
"id":"5",
"name":"five",
"children":[
]
},
{
"id":"new data",
"name":"new data",
"children":[
]
},
{
"id":"6",
"name":"six",
"children":[
]
}
]
}
]
这是 splice
的快速示例 ;)
只需传递目标数组、对象和 ID,add
函数就会将您的新对象插入到目标中的适当位置。
const data = [{
"id":"1",
"name":"one",
"children":[
{
"id":"4",
"name":"four",
"children":[]
},
{
"id":"5",
"name":"five",
"children":[]
},
{
"id":"6",
"name":"six",
"children":[]
}
]
}];
const object = {"id":"new data","name":"new data","children":[]};
const add = (object, toArray, afterId) => {
const afterIndex = toArray.findIndex(item => item.id === afterId);
toArray.splice(afterIndex + 1, 0, object);
};
add(object, data[0].children, '5');
console.log(data);
我有一个 json 对象数据,格式如下。因为我需要在特定 ID 之后插入一些新记录。
[
{
"id":"1",
"name":"one",
"children":[
{
"id":"4",
"name":"four",
"children":[
]
},
{
"id":"5",
"name":"five",
"children":[
]
},
{
"id":"6",
"name":"six",
"children":[
]
}
]
}
]
例如:我的 ID 为 5,还有新的 JSON 对象({"id":"new data","name":"new data","children":[]})。那么新数据应该在 id 5 之后插入。是否有任何可能的方法在某个特定的 id 之后插入。
[
{
"id":"1",
"name":"one",
"children":[
{
"id":"4",
"name":"four",
"children":[
]
},
{
"id":"5",
"name":"five",
"children":[
]
},
{
"id":"new data",
"name":"new data",
"children":[
]
},
{
"id":"6",
"name":"six",
"children":[
]
}
]
}
]
这是 splice
的快速示例 ;)
只需传递目标数组、对象和 ID,add
函数就会将您的新对象插入到目标中的适当位置。
const data = [{
"id":"1",
"name":"one",
"children":[
{
"id":"4",
"name":"four",
"children":[]
},
{
"id":"5",
"name":"five",
"children":[]
},
{
"id":"6",
"name":"six",
"children":[]
}
]
}];
const object = {"id":"new data","name":"new data","children":[]};
const add = (object, toArray, afterId) => {
const afterIndex = toArray.findIndex(item => item.id === afterId);
toArray.splice(afterIndex + 1, 0, object);
};
add(object, data[0].children, '5');
console.log(data);