gpt4 book ai didi

javascript - 使用 javascript 使用层次树的 Json

转载 作者:行者123 更新时间:2023-11-28 04:11:42 25 4
gpt4 key购买 nike

我有一个 JSON 数组。我尝试转换嵌套层次树。但它不起作用。我需要使用此 JSON 的分层树。

这是我的数据:

[{
"_id" : "59b65ee33af7a11a3e3486c2",
"C_TITLE" : "Sweet and Snacks",
"C_PARENT" : "0",
"C_ICON" : "",
"C_IMAGE" : "59b65ee33af7a11a3e3486c2_sweets.jpg",
"C_STATUS" : "Active"
}
{
"_id" : "59b663d709da571dc3d79f49",
"C_TITLE" : "Groceries",
"C_PARENT" : "0",
"C_ICON" : "",
"C_IMAGE" : "59b663d709da571dc3d79f49_grocery.jpg",
"C_STATUS" : "Active"
},
{
"_id" : "59b6648209da571dc3d79f4a",
"C_TITLE" : "Dals & Pulses",
"C_PARENT" : "59b663d709da571dc3d79f49",
"C_ICON" : "",
"C_IMAGE" : "59b6648209da571dc3d79f4a_dals.jpg",
"C_STATUS" : "Active"
},
{
"_id" : "59b6657509da571dc3d79f4c",
"C_TITLE" : "Rice & Rice products",
"C_PARENT" : "59b663d709da571dc3d79f49",
"C_ICON" : "",
"C_IMAGE" : "59b6657509da571dc3d79f4c_rice.jpg",
"C_STATUS" : "Active"
}]

我需要这样的输出

[
{
" _id" : "59b65ee33af7a11a3e3486c2",
"C_TITLE" : "Sweet and Snacks",
"C_PARENT" : "0",
"C_ICON" : "",
"C_IMAGE" : "59b65ee33af7a11a3e3486c2_sweets.jpg",
"C_STATUS" : "Active",
children:[]


}
]

基于检查 C_PARENT 和 _id。

最佳答案

基本上,您需要而不是

o[a.id]

这个

o[a._id]

因为您的数据将 _id 作为 key ID。

另一个问题是与 root 的严格比较,您需要一个字符串作为值 '0',因为这是您拥有的值。

var data = [{ _id: "59b65ee33af7a11a3e3486c2", C_TITLE: "Sweet and Snacks", C_PARENT: "0", C_ICON: "", C_IMAGE: "59b65ee33af7a11a3e3486c2_sweets.jpg", C_STATUS: "Active" }, { _id: "59b663d709da571dc3d79f49", C_TITLE: "Groceries", C_PARENT: "0", C_ICON: "", C_IMAGE: "59b663d709da571dc3d79f49_grocery.jpg", C_STATUS: "Active" }, { _id: "59b6648209da571dc3d79f4a", C_TITLE: "Dals & Pulses", C_PARENT: "59b663d709da571dc3d79f49", C_ICON: "", C_IMAGE: "59b6648209da571dc3d79f4a_dals.jpg", C_STATUS: "Active" }, { _id: "59b6657509da571dc3d79f4c", C_TITLE: "Rice & Rice products", C_PARENT: "59b663d709da571dc3d79f49", C_ICON: "", C_IMAGE: "59b6657509da571dc3d79f4c_rice.jpg", C_STATUS: "Active" }],
result = function (array, root) {
var r = [], o = {};
array.forEach(function (a) {
a.children = o[a._id] && o[a._id].children; // change to a._id
o[a._id] = a; // change to a._id
if (a.C_PARENT === root) { // strict comparison!
r.push(a);
return;
}
o[a.C_PARENT] = o[a.C_PARENT] || {};
o[a.C_PARENT].children = o[a.C_PARENT].children || [];
o[a.C_PARENT].children.push(a);
});
return r;
}(data, "0"); // "0" as root

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 使用 javascript 使用层次树的 Json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46217273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com