博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javescript经验文档(Array篇)
阅读量:6974 次
发布时间:2019-06-27

本文共 4334 字,大约阅读时间需要 14 分钟。

数组去重

...set(array)去重

{    let array = ['aa',12,'aa',16,12,'ab'];    function dedupe(array) { //es6        return [...new Set(array)]     }    dedupe(array);    //等价于    Array.from(new Set(array));}

array.filter()方法去重

{    let array = ['aa',12,'aa',16,12,'ab'];    array.filter((item, index) => {        return array.indexOf(item) == index;    });}

数组翻转

reverse()

{    let arr = ['a','b','c',1,3];    arr.reverse(); }

返回结果: [3, 1, "c", "b", "a"]

连接两个或多个数组

concat() 方法

concat() 方法用于连接两个或多个数组,该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本

arr0.concat(arr1, arr2, arr3, ......, arrx);
例:

{    [1,2,3].concat(4,5)        [1,2,3].concat([4,5],6)        [1,2,3].concat([4,5],[6,7,8])}

返回结果:

[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6, 7, 8]

... 方法

es6 扩展运算符,最简单的写法,一万个推荐!!!

{    let arr = ['1s','2s','3s',4];    let arr2 = ['1a','2a'];    console.log([...arr,...arr2]);}

返回结果:["1s", "2s", "3s", 4, "1a", "2a"]

push() 方法

push()把一个或多个参数附加在数组末尾,返回数组长度。改变数组自身。

{    let a = ['a','b','v'];    let b = ['c','d','g'];    a.push(...b)    console.log(a)}

返回结果:["a", "b", "v", "c", "d", "g"]

注意: push()方法返回的是数组长度,如上示例,console.log(a.push(...b))返回值为6

unshift() 方法

unshift()把一个或多个参数插入到数组头部,返回数组长度。改变数组自身。

{    let arr = [1, 2, 3];    let count = arr.unshift(4, 5);    console.log(count);     console.log(arr); }

返回结果:

5
[4, 5, 1, 2, 3]

数组与字符串相互转化

数组转字符串

join()方法,Array.join(标识符)

{    ['as2',12,'ss'].join('/');}

返回结果:"as2/12/ss"

字符串转数组

split()方法,string.split(标识符)

{    "as2/12/ss".split('/')}

返回结果:["as2", "12", "ss"]

数组删除、插入、替换

arrayObject.splice(index,howmany,item1,.....,itemX)

参数描述:

index:必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
howmany:必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item1, ..., itemX 可选。向数组添加的新项目。
返回值:
类型描述:Array 包含被删除项目的新数组,如果有的话。
说明:splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。

如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。

splice插入操作

示例:在 aa 和 bb 之间插入 aabb

{    let str = ['aa','bb',123,'sd13cx','jj',45];    str.splice(1,0,'aabb');    console.log(str)}

返回结果:["aa", "aabb", "bb", 123, "sd13cx", "jj", 45]

拓展练习

在 aa 和 bb 之间批量插入 ab、aabb、aaabbb

{

let str = ['aa','bb',123,'sd13cx','jj',45];str.splice(1,0,'ab','aabb','aaabbb');console.log(str);

}

返回结果:["aa", "ab", "aabb", "aaabbb", "bb", 123, "sd13cx", "jj", 45]

深层拓展

es6方法,使用‘...’扩展运算符

{    let str = ['aa','bb',123,'sd13cx','jj',45];    let arr = ['ab','aabb','aaabbb'];    //巧用es6 "..."    str.splice(1,0,...arr);    console.log(str);}

splice替换操作

示例:把 123 替换为 ccdd

{    let str = ['aa','bb',123,'sd13cx','jj',45];    str.splice(2,1,'ccdd');    console.log(str)}

返回结果:["aa", "bb", "ccdd", "sd13cx", "jj", 45]

拓展练习

把 123 替换为 1234、12345

{    let str = ['aa','bb',123,'sd13cx','jj',45];    str.splice(2,1,1234,12345);    console.log(str);}

返回结果:["aa", "bb", 1234, 12345, "sd13cx", "jj", 45]

splice删除操作

示例:把 123 删除

{    let str = ['aa','bb',123,'sd13cx','jj',45];    str.splice(2,1);    console.log(str)}

delete删除操作

{    let arr = ['aaa',111,222];    delete arr[1]    console.log(arr,arr.length)    //delete 只删除值,不删除引用空间}

返回结果:["aaa", empty, 222] 3

数组排序

冒泡排序

{    let array = [1,4,-8,-3,6,12,9,8];    let bubbleSort = function(arr){        for(let i = 0;i < arr.length-1;i++){            for(let j = 0;j < arr.length-i-1;j++){                if(arr[j] < arr[j+1]){                    let temp = arr[j];                    arr[j] = arr[j+1];                    arr[j+1] = temp;                }            }        }        return arr;    }    bubbleSort(array);}

(1)比较相邻的元素。如果第一个比第二个大,就交换他们两个位置。

(2)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
(3)针对所有的元素重复以上的步骤,除了最后一个。
(4)持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

快速排序排序

{    //递归思想,两边快速的排序,冒泡排序的改进    let array = [1,4,-8,-3,6,12,9,8];    let quickSort = function(arr){        if(arr.length <= 1){            return arr;        }        let index = Math.floor(arr.length/2);        let temp = arr.splice(index,1);        let left = [],right = [];        for(let item of arr){            if(item < temp){                left.push(item);            }else{                right.push(item);            }        }        return quickSort(left).concat(temp,quickSort(right));    }    quickSort(array);}

Math.floor(x)方法是向下取整,返回小于或等于x的最接近的整数。

splice(index,num,item)方法是向数组中添加项目,或是从数组中删除项目,并返回被删除的项目。

index是整数,被操作项目所在的位置(必须)

num是整数,要删除的项目的数量,如果为0,表示不删除(必须)
item是向数组中添加的新项目,可以是多个(可选)
push()方法是向数组末尾添加一个或多个新项目并返回新数组的长度

concat()方法连接两个或多个数组,不会改变原有数组,返回一个新数组

转载地址:http://scrsl.baihongyu.com/

你可能感兴趣的文章
unstrict模式
查看>>
提高red5性能几个配置。
查看>>
tab键技巧小结
查看>>
数据库管理中文件的使用
查看>>
计算机英语单词汇总
查看>>
TCP、UDP和HTTP详解
查看>>
MYSQL数据库设计规范与原则
查看>>
chrome贴吧插件——源代码
查看>>
201621123048《Java程序设计》第六周学习总结
查看>>
Eclipse快捷键大全(转载)
查看>>
python压缩文件脚本
查看>>
把Catalina的字符串格式转化为日期格式
查看>>
【语法】NSMutableString的用法
查看>>
前端知识点总结(html+css)部分
查看>>
VI/VIM 编辑器
查看>>
C#写爬虫,版本V2.0
查看>>
基于Ubuntu16搭建Hadoop大数据完全分布式环境
查看>>
网络爬虫
查看>>
python-memcached学习笔记
查看>>
转--Java工程师成神之路(2018修订版)
查看>>