1. join()

 Array.join() 是 String.split() 的逆向操作

 var arr = [1, 2, 3]
arr.join()// "1,2,3"
arr.join("")// "123"
arr.join(" ")// "1 2 3"
arr.join('-')// "1-2-3"
arr.join('_')// "1_2_3"
arr.join('a')// "1a2a3" var arr1 = [1, 2, 3, {a:1,b:2,c:3}]
arr1.join('__') // "1__2__3__[object Object]"
var arr2 = [1, 2, 3, [1,2,3]]
arr2.join('__')// "1__2__3__1,2,3"

2. reverse()

数组元素全部倒过来


3.sort()
 排序

 var arr = [1,3,11,24];arr.sort() // [1, 11, 24, 3]
arr.sort((a, b) => a-b) // [1, 3, 11, 24] var arr1 = ['b', 'as', 'c', 'z', 'f'];
arr1.sort() // ["as", "b", "c", "f", "z"] var arr2 = ['b', 'as', 'c', [1,2,3] ,'z', 'f']
arr2.sort() // [[1,2,3], "as", "b", "c", "f", "z"]

4. concat()

返回一个新的数组(不修改原数组)

 var arr = [1, 2, 3];
arr.concat(4, 5) // [1,2,3,4,5]
arr.concat([4, 5]) // [1,2,3,4,5]
arr.concat([1,2,3], [4, 5]) // [1, 2, 3, 1, 2, 3, 4, 5]
arr.concat([1,[2],3], [4, 5]) //[1, 2, 3, 1, [2], 3, 4, 5]

5. slice(start, end)

返回数组片段 (不修改原数组) start, end 均是开区间

 var arr = [1, 5, 6, 7, 3];
arr.slice(0) // [1, 5, 6, 7, 3]
arr.slice(1, 2) // [5]
arr.slice(1, 3) // [5, 6]

6. splice()

插入或者删除 (修改数组本身)

 var arr = [1, 5, 6, 7, 3];
arr.splice(1) // [5, 6, 7, 3] var arr1 = [1, 5, 6, 7, 3];
arr1.splice(2) // [6, 7, 3] var arr2 = [1, 5, 6, 7, 3];
arr2.splice(1,2) // [5, 6] var arr3 = [1, 5, 6, 7, 3];
arr3.splice(2,0, 'a') arr3 //[1, 5, "a", 6, 7, 3]

7. 把数组当栈使用
push() 尾部添加
unshift() 头部添加
pop() 尾部删除
shift() 头部删除

8 遍历
for...in... (这货他么可以用来遍历 对象{a: 1, b: 2} 中的键值对)...

var obj = {a: 1, b:2}
for(var x in obj) {
console.log(x)
console.log(obj[x])
} // a
// 1
// b
// 2

  

map()
forEach()

判断是数组还是对象

 var o = {};
try {
o.map(i => i) && 'o is arr'}
catch(err) {
'o is: obj';
}

9. filter()
var arr = [1, 5, 6, 7, 3];

arr.filter((item) => item <= 5 ); // [1, 5, 3]

  


10.
every() // 针对所有元素
some() // 存在某个元素

11.  reduce() // 从左到右索引
    reduceRight() // 从右到左
var arr = [1,2,2,3,4,54];

// 求和
arr.reduce((x, y) => x + y) // 66 // 找出最大值
arr.reduce((x, y) => x > y ? x : y) // 54

  


12. 搜索整个数组中具有给定值的元素
indexOf() // 从左到右索引
lastIndexOf()
用来给数组去重

function uniq(arr) {
var _arr = [];
arr.map(item => _arr.indexOf(item) === -1 && _arr.push(item))
return _arr;
}
var array = [1,2,2,3,1,1,5,2,10, '10'];
uniq(array);

  

 原文地址:https://mp.weixin.qq.com/s/qedx5LWXfNeT5aachyBjkA 

JS中数组的方法的更多相关文章

  1. JavaScript -- 时光流逝(二):js中数组的方法

    JavaScript -- 知识点回顾篇(二):js中数组的方法 1. 数组 (1)定义数组,数组赋值 <script type="text/javascript"> ...

  2. js中数组去重方法及性能对比

    js中数组的 数组去重 常用的数组去重方法以及效率分析: 首先我们先构建一个数组,主要是用于进行去重实验,我们主要实验的量级为1000,10000,100000,500000.具体的生成数组的方法如下 ...

  3. js中数组去重的几种方法

    js中数组去重的几种方法         1.遍历数组,一一比较,比较到相同的就删除后面的                 function unique(arr){                 ...

  4. JS中split使用方法和数组中元素的删除

    JS中split使用方法和数组中元素的删除 JS中split使用方法 <script language="javascript"> function spli(){ d ...

  5. js中数组方法大全

    js数组方法大全 一:前言 我们在学到js中数组的时候,我们会接触到js中数组的一些方法,这些方法对我们来说,可以很遍历的达到我们想要的结果,但是因为方法比较多,有些方法也不常用,可能会过一段时间就会 ...

  6. 秒味课堂Angular js笔记------Angular js中的工具方法

    Angular js中的工具方法 angular.isArray angular.isDate angular.isDefined angular.isUndefined angular.isFunc ...

  7. JS实现数组去重方法大总结

    js数组根据对象中的元素去重: var arr2 = [ { name: "name1", num: "1" }, { name: "name2&qu ...

  8. jQuery与JS中的map()方法使用

    1.jquery中的map()方法 首先看一个简单的实例: $("p").append( $("input").map(function(){ return $ ...

  9. php和js中数组的总结

      php中数组的表示方法:array()或者[] js中数组的表示方法:new array()或者[] 一.php中初始化命名数组 在PHP中声明数组的方式主要有两种:一是应用array()函数声明 ...

随机推荐

  1. GC 基础(转)

    转自:http://blog.csdn.net/ning109314/article/details/10411495/ = GC 基础 ===================== JAVA堆的描述如 ...

  2. Bootstrap 开关(switch)使用整理

    1.在JS里根据指定的 1或者0 或者其它值让按钮变成 on 或者 off (通常需要根据数据库查询的结果初始化开关的状态) (--开关插件包 bootstrap-switch.min.js) < ...

  3. CCF-201509-2-日期计算

    问题描述 试题编号: 201509-2 试题名称: 日期计算 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定一个年份y和一个整数d,问这一年的第d天是几月几日? 注意闰年 ...

  4. 移动端H5制作安卓和IOS的坑 持续更新...

    移动端H5制作安卓和IOS的坑 持续更新... 前言:最近参加公司的H5页面创意竞赛,又遇到不少页面在不同系统上的坑.踩坑之余,觉得很多之前遇到的知识点都忘了,索性开一篇博文,把这些坑都统一归纳起来, ...

  5. Python学习之--socket

    1.Socket概述   网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket.socket通常也称作"套接字",用于描述IP地址和端口,是一个 ...

  6. nuget服务器搭建,以及如何发布一个Nuget包

    本文章主要介绍如何将本地dll打包成为一个Nuget包,并如何发布到自己的nuget服务器.章节如下 1. 本地dll如何打包,以及版本的更新 2. 在linux上搭建nuget.server 3. ...

  7. js内置构造函数属性修改问题

    在学习js原型时遇到一个问题,Array,Object等内置构造函数部分属性无法修改,我猜测可能是因为浏览器实现的原因造成的. 1.修改name属性无效. <script type=" ...

  8. JavaWeb 之文件的上传下载

    又到了每周更新博客的时候了,每看到自己发布的随笔阅读量上涨的时候就特别开心,我也会尽自己的努力提高自己的水平,总结出通俗易读的学习笔记,还望大家能多多支持!!! ------------------- ...

  9. Jarvis OJ - [XMAN]level3 - Writeup——ret2libc尝试

    这次除了elf程序还附带一个动态链接库 先看一下,很一般的保护 思路分析 在ida中查看,可以确定通过read函数输入buf进行溢出,但是并没有看到合适的目标函数 但是用ida打开附带的链接库,可以看 ...

  10. 逐步搭建Lamp环境之rpm软件包管理

    Linux中的rpm软件包管理类似于windows下的"xxx软件管家"."xxx电脑管家",其作用主要用于查询软件的安装情况.安装软件.卸载软件. 以下针对这 ...