gpt4 book ai didi

javascript - 从父对象创建具有相同属性值的子对象

转载 作者:行者123 更新时间:2023-12-02 18:23:41 25 4
gpt4 key购买 nike

我有一个父对象。我想使用相同的键值对从父对象创建子对象。

例如

parentJSON = {[name:"a1",address:"b1",comp:"c1"],
[name:"a2",address:"b2",comp:"c1"],
[name:"a3",address:"b3",comp:"c2"],
[name:"a4",address:"b4",comp:"c2"],
[name:"a5",address:"b5",comp:"c2"],
[name:"a6",address:"b6",comp:"c3"]}

现在我想创建具有相同“comp”值的子对象。

例如

childJSON1 = {[name:"a1",address:"b1",comp:"c1"],
[name:"a2",address:"b2",comp:"c1"]}

childJSON2 = {[name:"a3",address:"b3",comp:"c2"],
[name:"a4",address:"b4",comp:"c2"],
[name:"a5",address:"b5",comp:"c2"]}

childJSON3 = {[name:"a6",address:"b6",comp:"c3"]}

这就是我尝试做的一点(它将使用指示重复次数的键更改父对象):

parentJSON = [1,2,3,3,4,4,4,5];
var i=0, x, count, item;

while(i < parentJSON.length) {
count = 1;
item = parentJSON[i];
x = i+1;

while(x < parentJSON.length &&
(x = parentJSON.indexOf(item, x)) != -1) {

count += 1;
parentJSON.splice(x,1);
}

parentJSON[i] = new Array(parentJSON[i],count);
++i;
}

console.log(parentJSON);`

最佳答案

首先你的json格式不正确,它应该看起来像这样

                   [{name:"a1",address:"b1",comp:"c1"},
{name:"a2",address:"b2",comp:"c1"},
{name:"a3",address:"b3",comp:"c2"},
{name:"a4",address:"b4",comp:"c2"},
{name:"a5",address:"b5",comp:"c2"},
{name:"a6",address:"b6",comp:"c3"}]

对象数组。

我的尝试,也非常可读。

var result = {};

$.each(parentJSON, function (i, item) {
if(!result[item.comp]) {
result[item.comp] = [];
}

(result[item.comp]).push(item);
});

alert(JSON.stringify(result))

JsFiddle

关于javascript - 从父对象创建具有相同属性值的子对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18586540/

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