js对象数组的合并问题

问题描述

js对象数组的合并问题

var arr=[ {a:3,b:0,c:1}, {a:3,b:0,c:2}, {a:5,b:0,c:0}, {a:5,b:1,c:0} ]
判断:若a值相同,b也相同,合并
var arr=[ {a:3,b:0,c:1,2}, {a:5,b:0,c:0}, {a:5,b:1,c:0} ]

解决方案

   var arr = [{ a: 3, b: 0, c: 1 }, { a: 3, b: 0, c: 2 }, { a: 5, b: 0, c: 0 }, { a: 5, b: 1, c: 0 }, { a: 3, b: 0, c: 3 }]
    var rst = {},k;
    for (var i = 0; i <arr.length-1; i++) {
        k = arr[i].a + '-' + arr[i].b;
        if (rst[k]) {
            if (typeof rst[k].c == 'number') rst[k].c = [rst[k].c, arr[i].c];
            else rst[k].c.push(arr[i].c);
        }
        else rst[k] = arr[i];
    }
    arr = [];
    for (k in rst) arr.push(rst[k]);
    console.log(arr)

解决方案二:

合并是怎么合呢,,c里面的数据是取单一的,,还是2个取并集

时间: 2024-12-22 18:27:16

js对象数组的合并问题的相关文章

json转js对象数组,求助

问题描述 json转js对象数组,求助 假设我有一个json对象,内容如下:{"10":"热卖商品","11":"限时抢购"},请问如何用js将其转换成这种格式? var data = [{ id: 10, text: '热卖商品' }, { id:11, text: '限时抢购'}]; 解决方案 var datajson = {"10":"热卖商品","11":&q

扩展js对象数组的OrderByAsc和OrderByDesc方法

  看了一段时间关于js原型的知识,js的扩展方法是基于原型的,如Array.prototype.XXXX就是给Array扩展XXX方法,然后数组都能使用这个方法了. 在对象数组里面经常有根据属性来进行排序的,升序,降序的,于是自己就想写一个类似于C#里面的orderBy的方法,代码如下: 代码如下: Array.prototype.OrderByAsc = function (func) { var m = {}; for (var i = 0; i < this.length; i++) {

扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路_javascript技巧

看了一段时间关于js原型的知识,js的扩展方法是基于原型的,如Array.prototype.XXXX就是给Array扩展XXX方法,然后数组都能使用这个方法了. 在对象数组里面经常有根据属性来进行排序的,升序,降序的,于是自己就想写一个类似于C#里面的orderBy的方法,代码如下: 复制代码 代码如下: Array.prototype.OrderByAsc = function (func) { var m = {}; for (var i = 0; i < this.length; i++

js对象数组按属性快速排序_javascript技巧

按所推荐的程序在IE下跑了下,的确,排序耗时很小. 复制代码 代码如下: <script> /* * 洗牌 */ function getRandomPlayCard(m){ var array1=new Array(m); for(var i=0;i<m;i++){ var rnd=Math.floor(Math.random()*(i+0.99999)) array1[i]=array1[rnd]; array1[rnd]=i; } return array1; }; /* * 快速

javascript 对象数组根据对象object key的值排序

 本文仅仅是实现了javascript 对象数组根据对象object key的值排序,算是对自己学习javascript这么久的一个小结,希望大家能够喜欢     有个js对象数组 var ary=[{id:1,name:"b"},{id:2,name:"b"}] 需求是根据name 或者 id的值来排序,这里有个风骚的函数 函数定义:   代码如下: function keysrt(key,desc) { return function(a,b){ return

javascript 对象数组根据对象object key的值排序_javascript技巧

有个js对象数组 var ary=[{id:1,name:"b"},{id:2,name:"b"}] 需求是根据name 或者 id的值来排序,这里有个风骚的函数 函数定义: 复制代码 代码如下: function keysrt(key,desc) {   return function(a,b){     return desc ? ~~(a[key] < b[key]) : ~~(a[key] > b[key]);   } } 使用: 复制代码 代码

js对象转json数组的简单实现案例

 本篇文章主要是对js对象转json数组的简单实现案例进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 代码如下: function obj2Str(obj){  switch(typeof(obj)){  case 'object':  var ret = [];  if (obj instanceof Array){  for (var i = 0, len = obj.length; i < len; i++){  ret.push(obj2Str(obj[i]));  }  re

json对象与数组以及转换成js对象的简单实现方法_javascript技巧

JSON 语法规则 JSON 语法是 JavaScript 对象表示法语法的子集. •数据在名称/值对中 •数据由逗号分隔 •花括号保存对象 •方括号保存数组 JSON 对象 JSON 对象在花括号中书写: 对象可以包含多个名称/值对: { "firstName":"John" , "lastName":"Doe" } 这一点也容易理解,与这条 JavaScript 语句等价: firstName = "John&q

JS传递对象数组为参数给后端,后端获取的实例代码_javascript技巧

前端JS代码: var conditons = []; var test1 = new Object(); test1.name="1"; test1.id="2"; var test2 = new Object(); test2.name="1"; test2.id="2"; conditons.push(test1); conditons.push(test2); $(function(){ $.ajax({ async: