js——数组操作
把教程里的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——数组操作的更多相关文章
- js数组操作-添加,删除
js 数组操作常用方法. push():在数组后面加入元素,并返回数组的长度 unshift():在数组前面加入元素,并返回数组的长度 pop()删除最后一个元素 shift()删除第一个元素 var ...
- 页面循环绑定(变量污染问题),js面向对象编程(对象属性增删改查),js字符串操作,js数组操作
页面循环绑定(变量污染问题) var lis = document.querySelectorAll(".ul li") for ( var i = 0 ; i < lis. ...
- js数组操作-最佳图解
js数组操作-最佳图解
- js数组操作find查找特定值结合es6特性
js数组操作find查找特定值结合es6特性
- JS数组操作:去重,交集,并集,差集
原文:JS数组操作:去重,交集,并集,差集 1. 数组去重 方法一: function unique(arr) { //定义常量 res,值为一个Map对象实例 const res = new Map ...
- js数组操作
用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方很多, 自以为js高手的自己居然无从下手,一下狠心,我学! ...
- js数组操作【转载】
用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方很多,自以为js高手的自己居然无从下手,一下狠心,我学!呵 ...
- php数组转换js数组操作及json_encode应用
对于php,个人感觉能够熟练操作数组和字符串,基本上已经是入门了,php本身有很多操作数组和字符串的函数,今天在做一个功能时,需要用Js动态的创建门店信息,这些信息是要从后台添加的,想来想去,通过ph ...
- js数组操作记录
一 .splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目. arrayObject.splice(index,howmany,item1,.....,itemX) 参数 描述 in ...
- js 数组操作大集合
js数组的操作 用 js有非常久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目.用到数组的地方非常多.自以为js高手的自己竟然无从下手 ...
随机推荐
- Oracle数据库XXE注入漏洞(CVE-2014-6577)分析
在这篇文中,我们将共同分析一下Oracle数据库的XXE注入漏洞(CVE-2014-6577),Oracle公司1月20日发布了针对该漏洞的相关补丁. 有关XXE的相关知识,可以查看安全脉搏站内的另一 ...
- MVC |分部视图 PartialView()
介绍如何定义 其实它和普通视图没有多大区别,只是创建分部视图的时候视图里没有任何内容,你需要什么标签你自己加.第二就是分部视图不会执行_ViewStart.cshtml中的内容) 控制器 Partia ...
- APPLE-SA-2019-3-25-7 Xcode 10.2
APPLE-SA-2019-3-25-7 Xcode 10.2 Xcode 10.2 is now available and addresses the following: KernelAvail ...
- MySQL对表数据操作
一: 修改表信息 1.修改表名 alter table test_a rename to sys_app; 2.修改表注释 alter table sys_application comment '系 ...
- mysql 文件操作 表
一 : 访问库 use db1 查询当前表所在文件夹 : select database(); 增: create table t1(id int, name chat(10)); 查询: ...
- Python简介(2017-07-16)
2017-07-15,这是我学习python的第一天. 首先,python是一门当下很火热的开发语言,它的创始人是Guido Van Rossum.就目前情况而言,python语言的热度持续上升,已经 ...
- react踩坑记录——使用fetch获取json数据报错
报错: 原因其实是list.json文件路径错误,该文件路径是相对于index.html的,而不是App.js或者index.js.
- windows 10下sublime text3环境的搭建以及配置python开发环境
1 - 安装Sublime Text 3 到官网下载对应的版本,如下: OS X (10.7 or later is required) Windows - also available as a p ...
- Spring重温(四)--Spring自动组件扫描
通常情况下,声明所有的Bean类或组件的XML bean配置文件,这样Spring容器可以检测并注册Bean类或组件. 其实,Spring是能够自动扫描,检测和预定义的项目包并实例化bean,不再有繁 ...
- 2017-2018-2 20165237 实验三《 敏捷开发与XP实践》实验报告
2017-2018-2 20165237 实验三< 敏捷开发与XP实践>实验报告 实验报告表头: 知识点: 1.XP团队使用现场客户.特殊计划方法和持续测试来提供快速的反馈和全面的交流: ...