问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

js对象数组 根据某个共同字段 分组

发布网友 发布时间:2022-04-23 01:26

我来回答

4个回答

热心网友 时间:2022-04-26 19:13

1、打开任一浏览器,按F12,进入开发者模式,找到控制台。本文以chrome浏览器为例,打开浏览器之后,打开任一标签页,找到Console控制台。

2、在控制台中,就可以书写js代码了。首先在此处定义一个js对象。直接使用 var obj1 = {}; 定义即可。

3、在控制台中,给js对象赋值,因为js是弱类型的语言,上面定义的对象并不需要指定字段类型,所以,在定义之后,就可以直接给它赋值了。

4、相同的方式,再定义另外一个js对象。直接使用 var obj2 = {}; 定义即可 。

5、在控制台中,给obj2对象赋值,而且,使用与obj1不相同的字段结构。

6、在控制台中,定义一个数组,定义方式如下:var arr = new Array()。

7、在控制台中,使用arr.push(obj1),就可以将对象1存放到js数组中。arr.push(obj2),就可以将对象2存放到js数组中。注意,obj1、obj2两个对象的字段是不相同的,但是,也是可以存放到同一个js数组中的,因为js是弱类型的。最后,直接使用arr,就可以看到当前数组中的对象值。

热心网友 时间:2022-04-26 20:31

var arr = [
    {"id":"1001","name":"值1","value":"111"},
    {"id":"1001","name":"值1","value":"11111"},
    {"id":"1002","name":"值2","value":"25462"},
    {"id":"1002","name":"值2","value":"23131"},
    {"id":"1002","name":"值2","value":"2315432"},
    {"id":"1003","name":"值3","value":"333333"}
];

var map = {},
    dest = [];
for(var i = 0; i < arr.length; i++){
    var ai = arr[i];
    if(!map[ai.id]){
        dest.push({
            id: ai.id,
            name: ai.name,
            data: [ai]
        });
        map[ai.id] = ai;
    }else{
        for(var j = 0; j < dest.length; j++){
            var dj = dest[j];
            if(dj.id == ai.id){
                dj.data.push(ai);
                break;
            }
        }
    }
}

console.log(dest);

热心网友 时间:2022-04-26 22:06

var arr = [
    {"id":"1001","name":"值1","value":"111"},
    {"id":"1001","name":"值1","value":"11111"},
    {"id":"1002","name":"值2","value":"25462"},
    {"id":"1002","name":"值2","value":"23131"},
    {"id":"1002","name":"值2","value":"2315432"},
    {"id":"1003","name":"值3","value":"333333"}
]

var objArr = [];            //定义一个空数组
var len = arr.length;

for (var i = 0;i < len; i++){
    var Id = arr[i].id;
    var Name = arr[i].name;
    var Value = arr[i].value;
    
    if(!objArr[Id]){        //objArr[Id]未定义或不存在
        objArr[id]  = {};
    }
    
    if(!objArr[Id][Name]){     //objArr[Id][Name]未定义或不存在
        objArr[Id][Name] = {};
        objArr[Id][Name].Value = [];
    }
    
    objArr[Id][Name].Value.push(Value);
}

console.log(objArr);

热心网友 时间:2022-04-26 23:57

var oldArr=[
{"id":"1001","name":"值1","value":"111"},
{"id":"1001","name":"值1","value":"11111"},
{"id":"1002","name":"值2","value":"25462"},
{"id":"1002","name":"值2","value":"23131"},
{"id":"1002","name":"值2","value":"2315432"},
{"id":"1003","name":"值3","value":"333333"}
]
;
var newArr=new Array();
var hasSame=false;
for(var i=0;i<oldArr.length;i++)
{
if(newArr.length>0)
{
for(var j=0;j<newArr.length;j++)
{
if(oldArr[i].id==newArr[j].id)
{
newArr[j].data.push(oldArr[i]);
hasSame=true;
}
}
}

if(!hasSame) {
var json={};
json.id=oldArr[i].id;
json.name=oldArr[i].name;
json.data=new Array();
json.data.push(oldArr[i]);
newArr.push(json);
}
hasSame=false;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
人字梯有什么安全隐患吗 怎样激发青春期孩子的内驱力 如何激发青春期孩子的内驱力 ...小题1:移船相近邀相见,添酒回灯重开宴。 , &amp;n... L1和L2串联 电压表并联在L1两端 当L1断路后 电压表测的为什么就成了电源... L1和L2串联,用电压表测L1两端的电压,L2不亮时,电流表为什么测的是电源电... 电路上传连两个灯泡L1与L2电压表测L1电压,当L1短路与断路时电压表情况... 对方拖着不办离婚手续该怎么办 计算机一级电子表格怎么拿分 如何配置思源黑体为latex中文字体? 思源黑体字体怎么安装 js对象数组的问题 Javascript如何判断一个变量是普通变量还是数组还是对象? javascript怎么输出对象中的数组 JavaScript对象数组如何按指定属性和排序方 在JavaScript中建立数组对象时的三个格式最正规的应该怎么写?_百度... javascript 怎么将对象当数组,并以方法名作为下标来调用方法 Javascript中判断变量是数组还是对象(array还是object) javascript 对象和数组的使用? JavaScript中数组和对象之间的关系是什么? JS中数组与对象 javascript数组与对象区别和联系 求JavaScript 查找对象数组元素的高效率的方法 javascript怎么创建对象数组?? JavaScript 里的类数组对象 在做红烧排骨的过程中,需要注意哪些方面的问题? 红烧排骨如何烧法 红烧排骨怎么炖好吃还烂肉嫩 排骨红烧什么好吃 有谁知道红烧排骨煲怎样做? 为什么“剁手党”多是女生 如何挑选新鲜鸡蛋? 鸡蛋如何挑选 鸡蛋如何保存能保鲜 怎么挑选好的鸡蛋? 如何正确挑选鸡蛋? 如何吃鸡蛋是最科学的呢? 如何快速地把鸡蛋打散? 怎样吃鸡蛋好? 苹果7升级13体验如何?有什么区别? 什么样的鼻子最标准? 什么样的鼻子才算完美呢? 好看鼻子的标准是什么?求告知 鼻子的美学标准是什么? 鼻子宽多少是标准 - 信息提示 怎样做才能让鼻子完美? 好看的鼻子标准是什么? 什么是理想鼻子的标准 中国人的标准鼻子是什么样的? 什么样的鼻子最漂亮?