我不知道标题是否适合我想要做的事情。
我有以下对象数组
array([0]: {category: "10",
question: "101"},
[1]: {category: "10",
question: "102"},
[2]: {category: "20",
question: "201"}
);
我希望将所有元素分组为:
array([0]: {category: "10", {question: "101",
question: "102"}},
category: "20", {question: "201"}});
我不知道这是否可行,或者是否有另一种更好的方法可以解决这个问题(可能是二维数组?)但是我们非常感谢任何帮助。
谢谢!
很抱歉缺少信息,以下是我创建对象数组的方法:
var arr_sections = [];
var arr_questions = [];
var jsonObj = [];
$('.ui-sortable-nostyle').each(function(){
arr_sections.push($(this).attr("sec_id"));
});
// create json object with pairs category - question
$(".sortable2").each(function(i){
$(this).children().each(function(j){
var cat = arr_sections[i];
jsonObj.push({
category: arr_sections[i],
question: $(this).attr("ques_id")
});
});
});
获得了一系列具有以下结构的对象:
[Object, Object, Object, Object, Object]
0: Object
category: "1052"
question: "3701"
__proto__: Object
1: Object
category: "1053"
question: "3702"
__proto__: Object
2: Object
category: "483"
question: "1550"
__proto__: Object
3: Object
category: "483"
question: "1548"
__proto__: Object
4: Object
category: "483"
question: "1549"
__proto__: Object
length: 5
试图创建我的新阵列:
for(var i = 0; i < jsonObj.length; i++){
temp[jsonObj[i].category] = jsonObj[i].question;
}
但我没有得到所有价值观:
[483: "1549", 1052: "3701", 1053: "3702"]
答案 0 :(得分:3)
你有:
var arr = [
{category: "10", question: "101"},
{category: "10", question: "102"},
{category: "20", question: "201"}
];
你想(我想):
var arrRequired = [
{category: "10", question : ["101", "102"] },
{category: "20", question : ["201"] }
];
我会给你:
var obj = {
"10" : ["101", "102"],
"20" : ["201"]
};
要将您拥有的内容转换为我将给您的内容,您可以执行以下操作:
var result = {};
arr.forEach(function(item) {
if (!result[item.category])
result[item.category] = [item.question];
else
result[item.category].push(item.question);
});
为了达到你想要的东西,你可以做到:
var arrRequired = [];
for (var category in result){
arrRequired.push({ 'category' : category, 'question' : result[category] });
}
如果那不是你想要的,那么也许你应该使用有效的语法更好地解释它。
答案 1 :(得分:-2)
以下是您提出的问题的答案:
var object1 = JSON.parse(jsonString1);
// Do something to object1 here.
var jsonString2 = JSON.stringify(object1);