js数组转换问题

  一维数组转多维数组

    var arr=[1,2,3,4,5,6,7,8,9,10]; 

    function splitArray(arr,size){

        var result = [];
        var tempArray;

        for(var i = 0; i < arr.length; i++){
            if(i%size == 0 ){
                if(tempArray){
                    result.push(tempArray);
                }
                tempArray = [];
            }

            tempArray[tempArray.length]=arr[i];
            if(i+1 == arr.length){
                result.push(tempArray);
            }

        }

        return result;

    }
    console.log(splitArray(arr,3));   //[[1,2,3],[4,5,6],[7,8,9],[10]]
一维数组转多维数组并去重
var arr=[1,2,3,4,5,6,7,8,9,10,11,12,1,2,3,7,8,9]; 

    function splitArray(arr,size){

        var result = [];
        var tempArray;

        for(var i = 0; i < arr.length; i++){
            if(i%size == 0 ){
                if(tempArray){
                    result.push(tempArray);
                }
                tempArray = [];
            }

            tempArray[tempArray.length]=arr[i];
            if(i+1 == arr.length){
                result.push(tempArray);
            }

        }

        return result;

    }

    Array.prototype.unique = function(){

        var json = {},result=[]; 

            for(var i = 0; i < this.length; i++){
                if (!json[this[i]]){
                    json[this[i]] = 1;
                    result.push(this[i]);
                }
            }

        return result;

    }

    console.log(splitArray(arr,3));   //[[1,2,3],[4,5,6],[7,8,9],[10,11,12],[1,2,3],[7,8,9]]
    console.log(splitArray(arr,3).unique());   //[[1,2,3],[4,5,6],[7,8,9],[10,11,12]]
一维数组转对象数组(三维)
  var arr=[1,2,3,4,5,6,7,8,9,10,11,12,1,2,3,7,8,9];
    function splitArray(arr){

            var json = {};
            var arr1 = [];

            for(var i=0;i<arr.length;i++){
                if( i%3==0 ){
                    json.x = arr[i];
                }else if( i%3==1 ){
                    json.y = arr[i];
                }else if( i%3==2 ){
                    json.z = arr[i];
                    arr1.push(json);
                    json={};
                }
            }

            return arr1;

   }
   console.log(splitArray(arr));   //[{x:1,y:2,z:3},{x:4,y:5,z:6},{x:7,y:8,z:9},{x:10,y:11,z:12},{x:1,y:2,z:3},{x:7,y:8,z:9}]
一维数组转对象数组(三维)并去重
var arr=[1,2,3,4,5,6,7,8,9,10,11,12,1,2,3,7,8,9];
    function splitArray(arr){

            var json = {};
            var arr1 = [];

            for(var i=0;i<arr.length;i++){
                if( i%3==0 ){
                    json.x = arr[i];
                }else if( i%3==1 ){
                    json.y = arr[i];
                }else if( i%3==2 ){
                    json.z = arr[i];
                    arr1.push(json);
                    json={};
                }
            }

            return arr1;

     }

    Array.prototype.unique = function(){
        var json = {},arr1=[];

        for(var i = 0; i < this.length; i++) {
            if (!json[JSON.stringify(this[i])]) {
                json[JSON.stringify(this[i])] = 1;
                arr1.push(this[i]);
            }
        }

        return arr1;

    }
    console.log(splitArray(arr));   //[{x:1,y:2,z:3},{x:4,y:5,z:6},{x:7,y:8,z:9},{x:10,y:11,z:12},{x:1,y:2,z:3},{x:7,y:8,z:9}]
    console.log(splitArray(arr).unique());   //[{x:1,y:2,z:3},{x:4,y:5,z:6},{x:7,y:8,z:9},{x:10,y:11,z:12}]
时间: 2024-10-08 15:21:02

js数组转换问题的相关文章

js数组转换成json串 (JSON.stringify)

例如: var giftlist[1490011777] = []; giftlist[1490011777]['id'] = 1490011777; giftlist[1490011777]['name'] = "礼包测试"; giftlist[1490011777]['desc'] = "详情"; 转换json串 var jsonStr = JSON.stringify(giftlist[1490011777]);

JS里的居民们8-对象和数组转换

编码 学习通用的数据用不同的数据结构进行存储,以及相互的转换 对象转为数组: var scoreObject = { "Tony": { "Math": 95, "English": 79, "Music": 68 }, "Simon": { "Math": 100, "English": 95, "Music": 98 }, "Anni

js 每日一更(数组转换成前端更容易解析的树状结构)

<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html" /> <meta name="keywords" content="数组转换成前端更容易解析的树状结构" /> <meta name="description" content=&

js 数组去重(数组元素是对象的情况)

js数组去重有经典的 几种方法 但当数组元素是对象时,就不能简单地比较了,需要以某种方式遍历各值再判断是否已出现. 因为: 1.如果是哈希判断法,对象作哈希表的下标,就会自动转换成字符型类型,从而导致所有元素都相等,这时判断方法不再有意义.一般最后数组就只剩一个 2.如果是直接比较法,则因为对象在内存中是按引用访问的,属性值相同的对象也不会相等,简单的直接判断不再有意义.一般最后数组还是原样 所以就需要进行值的比较 当然了,也可以换着法来将相应对象转为字符串(不是默认的那种[object Obj

js 的数组怎么push一个对象. Js数组的操作push,pop,shift,unshift JavaScript使用push方法添加一个元素到数组末 JavaScript数组函数unshift、shift、pop、push使用

push()函数用于向当前数组的添加一个或多个元素,并返回新的数组长度.新的元素将会依次添加到数组的末尾. 该函数属于Array对象,所有主流浏览器均支持该函数. 语法 array.push( item1 [,items... ] )参数 参数 描述item1 任意类型添加到当前数组末尾处的元素.items 可选参数/任意类型要添加到当前数组末尾处的其他项,可以有多个.注意:如果添加的元素类型为数组类型(Array),仍然会被当作一个元素看待,只是这个元素是数组类型而已.如果要合并两个数组,请使

javascript数组&amp;省市联动分别用js数组和JSON实现

1.定义数组的三种方式: **数组可以存放不同的数据类型 第一种: var arr=[1,2,3];   var arr=[1,"2",true]; 第二种: 使用内置对象,Array对象 var arr1=new Array(5);   //定义一个数组,数组的长度是5 arr1[0]="1"; var arr1=new Array(3); arr1[0]=1; arr1[1]="a"; arr1[2]=true; alert(arr1); 第

JS数组方法汇总 array数组元素的添加和删除

js数组元素的添加和删除一直比较迷惑,今天终于找到详细说明的资料了,先给个我测试的代码^-^ var arr = new Array(); arr[0] = "aaa"; arr[1] = "bbb"; arr[2] = "ccc"; //alert(arr.length);//3 arr.pop(); //alert(arr.length);//2 //alert(arr[arr.length-1]);//bbb arr.pop(); //al

js 数组的所有操作

js的数组操作有很多,这里记录了常用的和不常用的数组操作方法. 一.数组的创建 数组的创建有两种方法,一种是通过字面量,另一种是通过Array构造函数. 1.字面量 var num1 = [1,2,3]; 值得注意的是,利用字面量创建数组时,不可在最后一个数组元素添加",",因为在老版本的浏览器中,会出现bug.如下面的例子,在num2中,会创建一个包含1,2,3,undefined四个项或包含1,2,3三个项的数组. var num2 = [1,2,3,];//不推荐的写法 2.Ar

js 数组和对象的复制

js数组复制可以利用数组的合并方法concat()会返回一个新数组的特征 来实现复制 例如 var a=[1,2,3]; var b= a.concat(); 利用 slice()也可以, 返回的也是一个新数组. 对象的深度复制可以采用自定义回调函数实现 function clone(myObj){ if(typeof(myObj) != 'object') return myObj; if(myObj == null) return myObj; var myNewObj = new Obje