一 .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])

  返回整数索引值,如果没有匹配(===),返回-1fromIndex可选,表示从这个位置开始搜索,

  若缺省或格式不合要求,使用默认值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 )

数组中的每个元素都会执行这个函数。

参数 描述
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)
参数 描述
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数组操作记录的更多相关文章

  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 数组操作大集合

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

随机推荐

  1. Python中range()和len()

  2. 如何去除本地文件与svn服务器的关联

    1.每个目录逐个去删除.svn文件夹 .svn属于隐藏文件夹,可通过操纵Windows文件资源管理器使隐藏文件可视,删除该文件,即可. 2.首先建立一个新文件,文件命名为remove-svn-fold ...

  3. ADB 安卓开发配置环境

    下载完后将名称中含有adb的文件,和fastboot.exe复制到 c:/windows/system32目录 或c:/windows/system64目录(看自己电脑系统配置 如电脑64操作系统就写 ...

  4. 伽罗瓦域(有限域)GFq^12上元素的1→2→4→12塔式扩张(2)------第二次扩张

    接上文https://www.cnblogs.com/heshuchao/p/8196307.html 继续探讨塔式扩张的第二部分,即1→2→4→12中2 → 4的元素扩张表示方式与计算公式推导. 3 ...

  5. Webpack 2 视频教程 006 - 使用快捷方式进行编译

    原文发表于我的技术博客 这是我免费发布的高质量超清「Webpack 2 视频教程」. Webpack 作为目前前端开发必备的框架,Webpack 发布了 2.0 版本,此视频就是基于 2.0 的版本讲 ...

  6. redis实现分布式可重入锁

    利用redis可以实现分布式锁,demo如下: /** * 保存每个线程独有的token */ private static ThreadLocal<String> tokenMap = ...

  7. zabbix web监控模板

    问题关键:宏变量 {HOST.NAME} 配置 我直接在 Linux OS这个模板中添加的,都随意: 效果 加个报警 以上.

  8. navicat for sqlite 11.1.12 patch 永久试用 不报毒

    因为最近需要用这个但是网上都是注册机没有成功注册,所以就自己动手使用ollydbg开刀,    修改成了永久试用版本. 着急用所以没仔细分析,暂时先这样吧. 这个下载版本 http://dlsw.ba ...

  9. 不要错过iost币的免费派发机会

    2013 年 ripple 币曾经进行免费派发,而现在瑞波币兑CNY价格最高曾经达到20元, 如果你错过了 ripple 币,就不要错过这次李笑来和徐小平等背书 iost 币的免费派发

  10. [原创]同一个Tomcat,配置多个context、多个Host

    需求前提: 系统结束后,需要部署到服务器上. 目前只可以映射到一个固定IP的非80端口. 而server端和web端都要暴露到外网. 所以配置两个context,使得client应用不需要添加服务名, ...