把教程里的api看了一遍,感觉记住了,又感觉没有记住。。。后来发现,如果给自己提需求,或许不错。想想对于一个数组,可能会用到哪些操作呢?基本的操作就是增删改查吧(有点像sql)

1. 创建数组               

空数组:var arr = []

包含undefined元素[undefined x 3]

- var arr = []; arr.length = 3;

- var arr = [1,2,3]; delete arr[i];//delete每个元素后

- var arr = Array.apply(null, {length: 3});

- arr = arr.map(function(){});//map中函数默认返回undefined

- var arr = new Array(3);//不推荐使用,3表示长度

- var arr = new Array[3];//错误!

正常元素[1,2,3]

- var arr = [1,2,3];

- var arr = new Array(1,2,3);

- var arr = new Object([1,2,3]);

- var arr = Array.apply(null, [1,2,3]);

- arr = arr.map(function(item, index){return index + 1;})

2. 增            

对数组的修改,修改的操作直接就体现在原数组上

var arr = [1,2,3];

- 从前面添加[4,5,1,2,3]

var len = arr.unshift(4, 5);//可以插入多个,可以插入一个新数组作为元素,返回新数组长度

var delArr = arr.splice(0, 0, 4, 5);//splice(访问的位置,删除的元素个数,添加的元素),返回[被删除的元素]数组

- 从中间添加[1,4,5,2,3]

var delArr = arr.splice(1, 0, 4, 5);

- 从后面添加[1,2,3,4,5]

var len = arr.push(4,5);//返回新数组长度

arr2 = [4,5]; var newArr = arr.concat(arr2);//不对原来的数组做修改

3. 删               

var arr = [1,2,3];

- 删除第一个[2,3]

var num = arr.shift();//返回删除的第一个元素

var delArr = arr.splice(0, 1);//splice不给插入的元素

- 从中间删除一个[1,3]

var delArr = arr.splice(1, 1);

- 删除最后一个[1,2]

var num = arr.pop();//返回删除的最后一个元素

var delArr = arr.splice(arr.length - 1, 1);

4. 改               

var arr = [3,2,1];

- 反转reverse

var newArr = arr.reverse();//newArr = arr = [1,2,3]

- 排序sort

var newArr = arr.sort();//newArr = arr = [1,2,3]

var newArr = arr.sort(function(a, b){

return a < b;//true则交换位置

});//newArr = arr = [3,2,1]

5. 查               

var arr = [1,2,1];

- indexOf 元素第一次出现的位置

var index = arr.indexOf(1);//0

- lastIndexOf 元素最后一次出现的位置

var index = arr.lastIndexOf(1);//2

- 某个位置的元素

var num = arr[1];//num = 1

- slice(start, end)查找start到end之间的元素

var subArr = arr.slice(0,1);//subArr = [1]; 不包含end位置的元素

var subArr = arr.slice(-3,-2);//subArr = [1]; 可以取负值,最后一位为-1

6. 转换成字符串     

var arr = [1,2,3];

- var str = arr.toString();//"1,2,3" 默认中间有,连接

- var str = arr.join("*");//"1*2*3"  用连接符连接元素成字符串

7. 不用循环对各元素做统一处理

var arr = [1,2,3];

- every():判断arr中每个元素是否都满足条件,不对空数组进行检测,不改变原数组

var flag = arr.every(function(num){

return num > 0;

});//true

- some():判断arr中是否有元素满足条件

var flag = arr.some(function(num){

return num < 0;

});//false

- forEach():对每元素执行一次回调函数

var newArr = [];

arr.forEach(function(item, index){

newArr.push(index + ": " + item);

//return newArr;//没有返回到外部

});//newArr = ["0: 1","1: 2","2: 3"]

- map():通过指定函数处理数组的每个元素,并返回处理后的数组

var arr = [1,2,3];

var newArr = arr.map(function(item){

return item - 1;//返回值做为新数组的一个元素

});//newArr = [0,1,2]

- fill():用一个数填充数组各位

var arr = [1,2,3];

var newArr = arr.fill(1);//newArr = arr = [1,1,1]

js——数组操作的更多相关文章

  1. js数组操作-添加,删除

    js 数组操作常用方法. push():在数组后面加入元素,并返回数组的长度 unshift():在数组前面加入元素,并返回数组的长度 pop()删除最后一个元素 shift()删除第一个元素 var ...

  2. 页面循环绑定(变量污染问题),js面向对象编程(对象属性增删改查),js字符串操作,js数组操作

    页面循环绑定(变量污染问题) var lis = document.querySelectorAll(".ul li") for ( var i = 0 ; i < lis. ...

  3. js数组操作-最佳图解

    js数组操作-最佳图解

  4. js数组操作find查找特定值结合es6特性

    js数组操作find查找特定值结合es6特性

  5. JS数组操作:去重,交集,并集,差集

    原文:JS数组操作:去重,交集,并集,差集 1. 数组去重 方法一: function unique(arr) { //定义常量 res,值为一个Map对象实例 const res = new Map ...

  6. js数组操作

    用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方很多, 自以为js高手的自己居然无从下手,一下狠心,我学! ...

  7. js数组操作【转载】

    用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方很多,自以为js高手的自己居然无从下手,一下狠心,我学!呵 ...

  8. php数组转换js数组操作及json_encode应用

    对于php,个人感觉能够熟练操作数组和字符串,基本上已经是入门了,php本身有很多操作数组和字符串的函数,今天在做一个功能时,需要用Js动态的创建门店信息,这些信息是要从后台添加的,想来想去,通过ph ...

  9. js数组操作记录

    一 .splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目. arrayObject.splice(index,howmany,item1,.....,itemX) 参数 描述 in ...

  10. js 数组操作大集合

    js数组的操作 用 js有非常久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目.用到数组的地方非常多.自以为js高手的自己竟然无从下手 ...

随机推荐

  1. javascript 正则表达式总结

    为什么要使用正则表达式 正则表达式通过由普通字符和特殊字符组成的文字模板完成对字符串的校验,搜索,替换.在javascript中类似这样 /^1\d{10}$/ 复制代码 上面的这个简单的正则用来匹配 ...

  2. 【python小练】0004

    第 0004 题:任一个英文的纯文本文件,统计其中的单词出现的个数. 先回忆一下各种括号的用途: () tuple [] list {} dict ([]) set——需要一个list作为输入合集 c ...

  3. 前段js的各种弹出框

    artDialog 首页 > 文档与示例 artDialog —— 经典的网页对话框组件,内外皆用心雕琢. 支持普通与 12 方向气泡状对话框 完善的焦点处理,自动焦点附加与回退 支持 ARIA ...

  4. Docker 容器CPU设置

    CPU使用率其实就是你运行的程序占用的CPU资源,表示你的机器在某个时间点的运行程序的情况.使用率越高,说明你的机器在这个时间上运行了很多程序,反之较少.CPU使用率的高低与你的CPU强弱有直接关系. ...

  5. Debian Security Advisory(Debian安全报告) DSA-4405-1 openjpeg2

    package :openjpeg2 相关CVE ID: CVE-2017-17480 CVE-2018-5785 CVE-2018-6616 CVE-2018-14423 CVE-2018-1808 ...

  6. Django之CRM项目Day3-客户展示及分页

    1.展示客户 模板的查找顺序: ​ 先找全局的templates--> 按照app的注册顺序找templates中的文件 使用admin添加数据: 创建超级用户 python manage.py ...

  7. 【vue】中 $listeners 的使用方法

    $listeners 的官方介绍: 包含了父作用域中的 (不含 .native 修饰器的) v-on 事件监听器.它可以通过 v-on="$listeners" 传入内部组件——在 ...

  8. json 的类型

    json靠双引号与单引号, 区分是NUMBER 还是 STRING

  9. Hadoop环境准备

    1. 集群简介 HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起. HDFS集群负责海量数据的存储,集群中的角色主要有: NameNode.DataN ...

  10. TPU使用说明

    1 TPU分类和收费标准 1.1 分类和计费说明 地区 抢占式TPU Cloud TPU 美国 $1.35/hour $4.5/hour 欧洲 $1.485/hour $4.95/hour 亚太区地区 ...