js数组合并去重.....................

问题描述

js数组合并去重.....................

```var dataset=[["美国-未知-未知",3,30],["中国-河北-石家庄",50,40],["中国-上海,20,10] ,["中国-北京",60,27],["中国-广东-汕头",20,33],["中国-天津",10,3] ,["中国-浙江-杭州",10,3],["中国-西藏",30,3]];

```有一组数据 其中 ["中国-天津",10,3],["中国-浙江-杭州",10,3]

这两个数组的后两个值相同 我想把这两个数组合并成一个数组 ,变为["中国-浙江-杭州,中国-天津",10,3] 这种形式 我该怎么做 求好心人解答

解决方案

http://stackoverflow.com/questions/11248053/javascript-json-data-grouping

http://stackoverflow.com/questions/22954066/group-by-and-aggregation-on-json-array-using-underscore-js

解决方案二:

遍历数组进行合并

    var dataset = [["美国-未知-未知", 3, 30], ["中国-河北-石家庄", 50, 40], ["中国-上海", 20, 10], ["中国-天津", 10, 3], ["中国-北京", 60, 27], ["中国-广东-汕头", 20, 33], ["中国-浙江-杭州", 10, 3], ["中国-西藏", 30, 3]];
    var rst = {},key;

    for (var i = 0, j = dataset.length; i < j; i++) {
        key = dataset[i][1] + '-' + dataset[i][2];
        if (rst[key]) rst[key] += ',' + dataset[i][0];
        else rst[key] = dataset[i][0];
    }
    dataset = [];
    for (key in rst) dataset.push([rst[key]].join(key.split('-')));
    console.log(dataset)
时间: 2024-10-21 16:48:07

js数组合并去重.....................的相关文章

JS数组合并push与concat区别分析_javascript技巧

本文实例讲述了JS数组合并push与concat区别.分享给大家供大家参考,具体如下: 注意 concat 拼写,二者功能很相像,但有两点区别. 先看代码: var arr = []; arr.push(1); arr.push([2, 3]); arr.push(4, 5); arr = arr.concat(6); arr = arr.concat([7, 8]); arr = arr.concat(9, 10); arr.each(function(index, value){ alert

js史上最简单的数组合并去重排序

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript" src="js/jquery-2.1.4.js"></script> <script type="text/javascript"

JS实现合并两个数组并去除重复项只留一个的方法_javascript技巧

本文实例讲述了JS实现合并两个数组并去除重复项只留一个的方法.分享给大家供大家参考,具体如下: //It's merge arr1 and arr2 , delete the same element only leave one //It's only apdapter array. If object, no. //The sequence of the two array is not required. mergeArray:function (arr1, arr2){ for (var

php中如何把多个数组合并为一个数组

array_merge() 函数把两个或多个数组合并为一个数组. 如果键名有重复,该键的键值为最后一个键名对应的值(后面的覆盖前面的).如果数组是数字索引的,则键名会以连续方式重新索引. 例如: $news=M('news'); $sql="select count(a.news_id) as count_news,a.menu_id,b.pid from news a left join menu b on a.menu_id=b.menu_id where a.is_pass=0 group

JavaScript模拟数组合并concat_javascript技巧

定义和用法 concat() 方法用于连接两个或多个数组. 该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本. 语法 arrayObject.concat(arrayX,arrayX,......,arrayX) 参数 描述 arrayX 必需.该参数可以是具体的值,也可以是数组对象.可以是任意多个. 返回值 返回一个新的数组.该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的.如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是

关于js数组去重的问题小结

 在项目开发过程中经常会遇到数组中包含很多重复的内容,即脏数据去脏的操作,本文着重讲解了数组去重的几种方法.需要的朋友可以过来参考下,希望对大家有所帮助 1.根据js对象中key不重复的原则,构思出数组去重的方法,按照最常规的思维如下:   代码如下: function distinctArray(arr){ var obj={},temp=[]; for(var i=0;i<arr.length;i++){ if(!obj[arr[i]]){ temp.push(arr[i]); obj[ar

js数组去重的三种常用方法总结

 本篇文章主要是对js数组去重的三种常用方法进行了总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助 第一种是比较常规的方法   思路:   1.构建一个新的数组存放结果   2.for循环中每次从原数组中取出一个元素,用这个元素循环与结果数组对比   3.若结果数组中没有该元素,则存到结果数组中  代码如下: Array.prototype.unique1 = function(){  var res = [this[0]];  for(var i = 1; i < this.length

JS数组去重与取重的示例代码

 本篇文章主要是对JS数组去重与取重的示例代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 方法一:去重复数据 代码如下: <script> Array.prototype.distinct=function(){ var a=[],b=[]; for(var prop in this){    var d = this[prop];    if (d===a[prop]) continue; //防止循环到prototype    if (b[d]!=1){     a.push

js数组常用操作方法小结(增加,删除,合并,分割等)_javascript技巧

本文实例总结了js数组常用操作方法.分享给大家供大家参考,具体如下: var arr = [1, 2, 3, 4, 5]; //删除并返回数组中第一个元素 var theFirst = arr.shift(); alert(theFirst);//返回1 number alert(arr);//2,3,4,5 object //删除并返回数组中最后一个元素 var theLast = arr.pop(); alert(theLast);//返回5 number alert(arr);//2,3,