js数组操作记录
一 .splice()
方法向/从数组中添加/删除项目,然后返回被删除的项目。
arrayObject.splice(index,howmany,item1,.....,itemX)
| 参数 | 描述 | 
| index | 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。 | 
| howmany | 必需。要删除的项目数量。如果设置为 0,则不会删除项目。 | 
| item1, ..., itemX | 可选。向数组添加的新项目。 | 
事例:
let a=[1,2,3];
a.splice(1,1,666);
console.log(a);//[1,666,3]
二 .slice()
slice() 方法可从已有的数组中返回选定的元素。
arrayObject.slice(start1,end2)
| 参数 | 描述 | 
| start1 | 必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。 | 
| end2 | 可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。 | 
事例:
let a=[1,2,3,4,5];
console.log(a.slice(1,4)); //[2,3,4]
三 .concat()
方法用于连接两个或多个数组。
该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
返回一个新的数组。该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的。如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组。
arrayObject.concat(X,X,......,X)
| 参数 | 描述 | 
| X | 必需。该参数可以是具体的值,也可以是数组对象。可以是任意多个。 | 
事例:
  let a=[1,2,3];
			  let b=[4,5,6];
			  console.log(a.concat(b));//[1,2,3,4,5,6]
			  console.log(a.concat(4,5,6));//[1,2,3,4,5,6]
四 .sort()
方法用于对数组的元素进行排序。
arrayObject.sort(sortby)
| 参数 | 描述 | 
| sortby | 可选。规定排序顺序。必须是函数。 | 
sortby函数应该具有两个参数 a 和 b,其返回值如下:
- 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
 - 若 a 等于 b,则返回 0。
 - 若 a 大于 b,则返回一个大于 0 的值。
 
事例:
let a = [2, 4, 1, 3];
console.log(a.sort(function(a, b) {
    return a-b;
			  })); //[1,2,3,4]
五 . for of
1 .es6里的新功能 用来遍历数组 参考 :Iterator和for...of循环
2 .for in 与 for of的区别:
简单说,for in是遍历键名,for of是遍历键值。
let arr = ["a","b"];
for (a in arr) {
console.log(a);//1,2
} for (a of arr) {
console.log(a);//a,b
}
由于for of的这个特性,他还可以实现对iterator对象的遍历,而for in就是简单的遍历了。
六 . reverse()
用于颠倒数组中元素的顺序。会改变原来的数组,而不会创建新的数组。
var a = [2, 4, 1, 3];
console.log(a.reverse());//[3,1,4,2]
方法会返回颠倒后的数组。
七 . indexof()
array.indexOf(searchElement[, fromIndex])
  返回整数索引值,如果没有匹配(===),返回-1. fromIndex可选,表示从这个位置开始搜索,
  若缺省或格式不合要求,使用默认值0。
var a="123";
console.log(a.indexOf(2));//
var ab=['1','2','3'];
console.log(b.indexOf('2'));//-1
八 . filter()
array.filter(function( currentValue , index , arr ) , thisValue)
filter方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。filter不会对空数组进行检测,且不会改变原始数组。
| 参数 | 描述 | ||||||||
| function( currentValue , index , arr ) | 
 数组中的每个元素都会执行这个函数。 
  | 
||||||||
| thisValue | 可选。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。 如果省略了 thisValue ,"this" 的值为 "undefined"  | 
          var arr2 = [{
                    "name": "apple",
                    "count": 2
                },
                {
                    "name": "orange",
                    "count": 5
                },
                {
                    "name": "pear",
                    "count": 3
                },
                {
                    "name": "orange",
                    "count": 16
                },
            ];
            var newArr = arr2.filter(function(item, idx, arr) {
                console.log(item, idx, arr);
                return item.name == 'orange';
            });
            console.log(newArr);
            let spread = [12, 5, 8, 8, 130, 44, 130];
            spread = spread.filter(function(item, idx, arr) {
                return arr.indexOf(item) === idx;
            });
            console.log('数组去重结果', spread);
九 .reduce()
array.reduce(function( result, currentValue ,currentIndex, arr ),initObj)
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
| 参数 | 描述 | ||||||||||
| function(result, currentValue, currentIndex,arr) | 
  | 
||||||||||
| initObj | 可选,第一次循环传入的初始值 | 
var arr2 = [1,2,3,4,5];
var total = arr2.reduce(function(total, currentValue, currentIndex, arr) {
    total[currentIndex]=currentValue;
    return total;
},[]);
console.log(total);//1,2,3,4,5
注意:在不传initialObj参数的情况下,reduuce的回调函数是从第二个元素( [ 1 ] )开始执行的,所以第一次执行函数里的result参数是( [ 0 ] ) !
十 .pop()
用于删除并返回数组的最后一个元素。
var arr = [1,2,3]
console.log(arr.pop());//
十一 .最后
今天就了做一下js数组方面的基础知识的收集。用于经常为自己知识的巩固。
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 数组操作大集合
		
js数组的操作 用 js有非常久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目.用到数组的地方非常多.自以为js高手的自己竟然无从下手 ...
 
随机推荐
- c语言中的转义序列
			
c中的输出函数printf()可以带以下的转义序列,不同的转义序列会得到不同的结果. 1.\a:警报 2.\b:退格(光标回退一格)3.\f:换页4.\n:换行(光标去到下一行的起始处)5.\r:回车 ...
 - iOS开发系列
			
因为最近面试了一些人,校招.初中级.高级.架构师,各种级别的,发现大家水平差异很大,有的高级的工程师很多问题都回答不上来,所以想梳理下iOS的知识点,写成一个系列,如果时间允许的话,会录制成视频放到网 ...
 - opacity的背景透明&background中rgba的背景色透明
			
近期使用css实现了一个loading旋转加载的图片效果,类似gif动画 过程中,需要透明背景,但是图片不要透明 只要背景透明!只要背景透明!只要背景透明! 这里对透明模糊了,两种写法,模糊了 A: ...
 - 代码审计之XiaoCms(后台任意文件上传至getshell,任意目录删除,会话固定漏洞)
			
0x00 前言 这段时间就一直在搞代码审计了.针对自己的审计方法做一下总结,记录一下步骤. 审计没他,基础要牢,思路要清晰,姿势要多且正. 下面是自己审计的步骤,正在逐步调整,寻求效率最高. 0x01 ...
 - 用 Identity Server 4 (JWKS 端点和 RS256 算法) 来保护 Python web api
			
目前正在使用asp.net core 2.0 (主要是web api)做一个项目, 其中一部分功能需要使用js客户端调用python的pandas, 所以需要建立一个python 的 rest api ...
 - 【转】Tableau 9.3.8 desktop for Mac 中文破解
			
tableau破解版本下载地址 安装步骤: 1. 编辑hosts 文件 在终端输入:sudo nano /etc/hosts 添加如下内容: 127.0.0.1 licensing.tableauso ...
 - C# war3 巨魔精灵 minimap
			
弃坑LOL后,无聊的时候玩玩 war3的RPG地图,巨魔与精灵. 玩了一段时间精灵....然后玩魔结果总是找不到人.所以就有了这个想法. 代码纯粹靠搬运. 说下原理,网上有份代码,可以查看当前选中目 ...
 - 管理 MariaDB 用户账户
			
哪些用户可以连接到MariaDB 服务器,他们都可以从哪些地方连接,连接到服务器后又能够做什么等,都是本文将涉及到的内容. 用户的权限信息都保存在 mysql 库中的几个权限表中.对 MariaDB ...
 - 简易安卓APP
			
简介 现在来分享期末做的安卓大作业--生活百科. 本项目只是单纯的一个大作业,没有考虑实际的需求,所以有设计不合理的地方,请见谅. 这个项目有三大功能(因为是使用了侧边栏所以是可以继续往里面添加功能的 ...
 - 希尔排序(Go语言)
			
func ShellSort(num []int) { //increment相隔数量 ;increment> ;increment/= { //i序号较大的数组下标,i ,j进行比较 for ...