一维数组转多维数组

    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}]

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

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

    例如: var giftlist[1490011777] = []; giftlist[1490011777]['id'] = 1490011777; giftlist[1490011777]['na ...

  2. Json字符串与js数组互相转换

    1.Json数据格式的字符串转换成js数组: JSON.parse(str); // str 字符串格式   2.js数组转换成Json数据格式字符串: var myJSONText = JSON.s ...

  3. js 判断是否为数组的方式 及 类数组转换成数组格式

    1. 判断是否为数组的通用方式 Object.prototype.toString.call(o)=='[object Array]' 其他方式: typeof ,  instanceof,  ary ...

  4. js将一个具有相同键值对的一维数组转换成二维数组

    这两天,一个前端朋友在面试的笔试过程中遇到了一道类似于"用js实现将一个具有相同code值的一维数组转换成相同code值在一起的二维数组"的题目.他面试过后,把这个问题抛给了我,问 ...

  5. js数组,字符串,json互相转换函数有哪些

    js数组,字符串,json互相转换函数有哪些 一.总结 一句话总结: JSON.stringify(arr) JSON.parse(jsonString) str.split('') array.jo ...

  6. js冒泡法和数组转换成字符串示例代码

    将数组转换成字符串的方法有很多,讲解下js冒泡法的使用.js代码: //js冒泡法与数据转换为字符串的例子 //整理:www.jbxue.com window.onload = function(){ ...

  7. js冒泡法和数组转换成字符串

    js代码: window.onload = function(){ var mian = document.getElementById( "mian" ); var mian1 ...

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

    编码 学习通用的数据用不同的数据结构进行存储,以及相互的转换 对象转为数组: var scoreObject = { "Tony": { "Math": 95, ...

  9. js对象、数组转换字符串

    对象转换成字符串需要使用toString()方法. 1 var a = function(){ 2 console.log(111); 3 }; 4 var b = a.toString(); 5 c ...

随机推荐

  1. i++、++i 、i--、--i

    总结: i++ 先用后加, ++i先加后用: i--先用后减, --i先减后用: //int i = 1; //Console.WriteLine(i);//1 //Console.WriteLine ...

  2. mysql 5.7中的用户权限分配相关解读!

    这篇文章主要介绍了MySQL中基本的用户和权限管理方法,包括各个权限所能操作的事务以及操作权限的一些常用命令语句,是MySQL入门学习中的基础知识,需要的朋友可以参考下 一.简介 各大帖子及文章都会讲 ...

  3. Java中的进程和线程

     Java中的进程与线程 一:进程与线程 概述:几乎任何的操作系统都支持运行多个任务,通常一个任务就是一个程序,而一个程序就是一个进程.当一个进程运行时,内部可能包括多个顺序执行流,每个顺序执行流就是 ...

  4. Xamarin.Android活动的生命周期

    一.前言 用过Android手机的人一定会发现一种现象,当你把一个应用置于后台后,一段时间之后在打开就会发现应用重新打开了,但是之前的相关的数据却没有丢失.可以看出app的“生命”是掌握在系统手上的, ...

  5. 谨慎使用Marker Interface

    之所以写这篇文章,源自于组内的一些技术讨论.实际上,Effective Java的Item 37已经详细地讨论了Marker Interface.但是从整个Item的角度来看,其对于Marker In ...

  6. 集成基于OAuth协议的单点登陆

    在之前的一篇文章中,我们已经介绍了如何为一个应用添加对CAS协议的支持,进而使得我们的应用可以与所有基于CAS协议的单点登陆服务通讯.但是现在的单点登陆服务实际上并不全是通过实现CAS协议来完成的.例 ...

  7. Lesson 20 One man in a boat

    Text Fishing is my favourite sport. I often fish for hours without catching anything. But this does ...

  8. 修改策略组/注册表 屏蔽Win10升级解决方法

    一.Windows非家庭版 第1步:按Win+R键调出运行对话框,输入命令“gpedit.msc”,按回车键启动组策略编辑器. 第2步:依次定位到“计算机配置→管理模板→Windows组件→Windo ...

  9. Android开发学习之路-记一次CSDN公开课

    今天的CSDN公开课Android事件处理重难点快速掌握中老师讲到一个概念我觉得不正确. 原话是这样的:点击事件可以通过事件监听和回调两种方法实现. 我一听到之后我的表情是这样的: 这跟我学的看的都不 ...

  10. 如何优雅地使用Sublime Text

    Sublime Text:一款具有代码高亮.语法提示.自动完成且反应快速的编辑器软件,不仅具有华丽的界面,还支持插件扩展机制,用她来写代码,绝对是一种享受.相比于难于上手的Vim,浮肿沉重的Eclip ...