Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用for循环创建多维对象?_Javascript - Fatal编程技术网

Javascript 如何使用for循环创建多维对象?

Javascript 如何使用for循环创建多维对象?,javascript,Javascript,我有一个这样的循环: for (var i = 0; i <= details.length; i++){ temp.push({"name": details[i].name, "value": details[i].value}); } [{"name":abc,"value":1},{"name":abc,"value":2},{"name":abc,"value":3},{"name":bcd,"value":4}] 但是我的数据有一些重复的名字。我希望我的结果是: [

我有一个这样的循环:

for (var i = 0; i <= details.length; i++){
    temp.push({"name": details[i].name, "value": details[i].value});
}
[{"name":abc,"value":1},{"name":abc,"value":2},{"name":abc,"value":3},{"name":bcd,"value":4}]
但是我的数据有一些重复的名字。我希望我的结果是:

[{"abc": [{"name": "abc", "value": 1}, {"name": "abc", "value":2}, {"name": "abc", "value":3}],}, "bcd

等等。有人能告诉我怎么做吗?

以下是您需要的:

var temp = new Object();
for (var i=0; i<=details.length;i++){
    if(temp[details[i].name] === undefined){
        temp[details[i].name] = new Array();
    }
    temp[details[i].name].push({"name":details[i].name,"value":details[i].value});
}
var temp=new Object();

对于(var i=0;i重新编辑:

for(var i = 0; i < jsondata.length; i++)
{
    console.log("Name is: " + jsondata[i].name);

    for(var j = 0; j < jsondata[i].values.length; j++)
    {
        console.log("For name '" + jsondata[i].name + "', value is: " + jsondata[i].values[j]);
    }
}
json结构中有大量冗余信息

以下是我对json结构的建议:

var jsondata = [
       { 
         "name" : "abc",
         "values" : [ 1, 2, 3 ] 
       },
       { 
         "name" : "bdc",
         "values" : [ 1, 2, 3 ] 
       }
    ];
也请阅读:

for(var i = 0; i < jsondata.length; i++)
{
    console.log("Name is: " + jsondata[i].name);

    for(var j = 0; j < jsondata[i].values.length; j++)
    {
        console.log("For name '" + jsondata[i].name + "', value is: " + jsondata[i].values[j]);
    }
}
for(var i=0;i
也创建它

var output = [];

for (var i=0; i<=details.length; i++){  

   var isFound = false;

   for(var j = 0; j < output.length; j++)
   {
       if (output[j].name == details[i].name)
       {
           output[j].values.push(details[i].value);
           isFound = true;
           break;
       }
   }

   if (isFound == false)
   {
       output.push({ "name" : details[i].name, "values" : [ details[i].value ] });
   }
}
var输出=[];

对于(var i=0;它将不起作用,因为您使用新值多次覆盖同一命名索引。键入:
details。length
应该是
details。length
请给我初始数组的详细信息。我可以修复它,但没有详细信息,我正在工作。您能否提供详细信息中的数据示例。该代码无效。
temp。推送{..}?