javascript-数组的常用方法
除了第二点的方法以外,所有方法都不会改变数组本身
查了一下ECMAScript给数组这个对象已经原生地封装了许多很有用的方法,所以接下来我想在这里总结一下一些常用的数组内置方法:
1、join
var colors = ["red","blue","green"]; colors.join("$$"); colors.toString(); //"red$$blue$$green"
join()用于改变数组的分割。
2、修改数组内部数据的方法
//*
//*插入方法
//* //push方法
var colors = ["red"];
colors.push("blue","green"); //
colors.toString(); //"red,blue,green" //unshift方法
var colors = ["red"];
colors.unshift("blue","green"); //
colors.toString(); //"blue,green,red" //*
//*删除(退出)数组项方法
//* //pop方法
var colors = ["red","blue","green"];
colors.pop(); //"green" //shift方法
var colors = ["red","blue","green"];
colors.shift(); //"red" //*
//*功能最强的方法——splice(索引位置,要删除的个数,要插入的若干项数据)
//* //作为删除用途
var colors = ["red","blue","green"];
colors.splice(1,1); //["blue"]
colors.toString() //"red,green" //作为替换用途
var colors = ["red","blue","green"];
colors.splice(1,2,"white","black"); //["blue", "green"]
colors.toString(); //"red,white,black" //作为插入用途
var colors = ["red","blue","green"];
colors.splice(1,0,"white","black"); //[]
colors.toString(); //"red,white,black,blue,green" //排序,也会改变本数组
values = [2, 4, 6, 8, 10];
values.sort((a,b)=>{return b-a})
push()方法是从数组最后插入数组项,而unshift()则是从数组的最前插入数组项,注意插入的数组项在该数组的顺序保持与参数时候一致。
pop()方法是从数组最后“弹出”数组项,而unshift()则是从数组的最前“弹出”数组项。
而splice方法可以实现插入、删除、替换这3种功能:splice(索引位置,要删除的个数,要插入的若干项数据)
3、迭代方法
var numbers = [1,2,3,4,5,4,3,2,1]; //*
//*判断数组每一项
//* //every只有每一项都返回true,整个才会返回true
numbers.every(function(item,index,array){return item>2}) //false //some只要有一项返回true,整个就会返回true
numbers.some(function(item,index,array){return item>2}) //true //*
//*filter过滤器,返回一个由符合的项组成的数组
//*
numbers.filter(function(item,index,array){return item>2}) //[3, 4, 5, 4, 3] //*
//*逐项执行的迭代
//* //map有返回结果,我们叫它映射
numbers.map(function(item,index,array){return item*2}) //[2, 4, 6, 8, 10, 8, 6, 4, 2] //forEach没有返回结果
numbers.forEach(function(item,index,array){array[index] = item*2}) ;
alert(numbers); //[2, 4, 6, 8, 10, 8, 6, 4, 2]
大家可以根据不同的需求来调用js提供的原生的迭代方法!!
4、归并方法
reduce(callback[,initalValue]) 第二个参数是自定义初始值(就是第一次循环的pre)
最后是归并方法reduce()和reduceRight(),两者都会迭代数组所有项,其中reduce()从第一项开始,而reduceRight()从数组最后一项开始,出此之外两个函数完全相同
//reduce()中pre第一次为数组第一项,第二次开始为第一次函数返回值为pre
var values = [1,2,3,4,5];
var sum=values.reduce(function(pre,cur,index,array){return pre + cur});
alert(sum); // //reduceRight()中pre第一次为数组最后一项,第二次开始为第一次函数返回值为pre
var values = [1,2,3,4,5];
var sum=values.reduceRight(function(pre,cur,index,array){return pre + cur});
alert(sum); //
其实forEach()也完全可以实现,并且比以上两个归并方法更好理解,怎样实现这功能也看个人习惯。
ps:reduce除了用作求和,还可以用作递归寻找
例如说,有一个非常复杂的对象如果我们有一个path数组,存着一个路径,我们就可以用reduce来找到这个路径的“终点节点”:
path.reduce((obj,pathString=>obj[pathString],庞大的对象)
5、slice
slice是指定在一个数组中的元素创建一个新的数组,即原数组不会变
数组的 slice (非常类似于字符串的 slice。根据规范,slice 需要两个参数,起点和终点。它会返回一个包含了从起点开始,到终点之前之间所有元素的新数组。
理解 slice 的功能并不是太难:
'abc'.slice(1,2) // "b"
[14, 3, 77].slice(1, 2) // [3]
6、concat
concat() 方法用于连接两个或多个数组。
该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
var mya = new Array(3);
mya[0] = "1";
mya[1] = "2";
mya[2] = "3";
document.write(mya.concat(4,5)+"");//1,2,3,4,5
document.write(mya); //1,2,3
7.from(es6新增的)
从一个类似数组或可迭代对象中创建一个新的数组实例。
Array.from('foo'); // ["f", "o", "o"] Array.from(["a", "b", "c"]); // ["a", "b", "c"] //特殊的可以从{length:num}返回一个长度为num的数组
Array.from({length:5}); //[undefined,undefined,undefined,undefined,undefined] //第二个参数是map函数
Array.from({length:5},(v, i) => i); // [0,1,2,3,4]
8.delete
用于删除对象的某个属性,因此可以删除数组的某一项,或者对象的某一个属性。成功返回true,失败返回false
var a = [1,2,3];
delete a[1]; //true
a; //(3) [1, empty × 1, 3] var b = {name:'rick',age:21};
delete b.age; //true
b; //{name: "rick"}
javascript-数组的常用方法的更多相关文章
- JavaScript数组对象常用方法
JavaScript数组对象常用方法 方法 形式 返回值 是否改变原数组 描述 concat -items: ConcatArray[] 追加之后的数组 否 连接两个或更多的数组,并返回结果.注意 c ...
- javascript 数组的常用方法总结
前言 主要讨论一下数组的方法, 1.splice和slice的区别 2.pop和push 3.shift和unshift 4.join 5.forEach(es ...
- javascript数组的常用方法总结
http://jingyan.baidu.com/album/86fae346bce16d3c49121af9.html?picindex=1 1. concat()方法 数组和数组的 粘结: var ...
- JavaScript数组操作常用方法
@ 目录 数组基础遍历方法. for for of for in 数组的基础操作方法. push:尾部追加元素 pop:尾部移出元素 unshift:头部追加元素 shift:头部移出元素 splic ...
- 前端开发:Javascript中的数组,常用方法解析
前端开发:Javascript中的数组,常用方法解析 前言 Array是Javascript构成的一个重要的部分,它可以用来存储字符串.对象.函数.Number,它是非常强大的.因此深入了解Array ...
- JavaScript中数组操作常用方法
JavaScript中数组操作常用方法 1.检测数组 1)检测对象是否为数组,使用instanceof 操作符 if(value instanceof Array) { //对数组执行某些操作 } 2 ...
- 关于javascript数组的定义与其一些常用方法总结
由于JavaScript是一门宽松的语言,这种宽松可能会带来更加麻烦的事情.比如JavaScript的数组,定义与使用的方式太灵活有时候让人迷惑.下面将JavaScript中关于数组常用的方法.定义之 ...
- JavaScript数组方法速查,32个数组的常用方法和属性
JavaScript数组方法速查手册极简版 http://30ke.cn/doc/js-array-method JavaScript数组方法速查手册极简版中共收了32个数组的常用方法和属性,并根据方 ...
- JavaScript 数组 常用方法(二)
写在前面:续接上篇 JavaScript 数组 常用方法 数组常用方法第二弹来了: some && every 描述: every()与some()方法都是JS中数组的迭代方法. so ...
- JavaScript数组常用方法解析和深层次js数组扁平化
前言 数组作为在开发中常用的集合,除了for循环遍历以外,还有很多内置对象的方法,包括map,以及数组筛选元素filter等. 注:文章结尾处附深层次数组扁平化方法操作. 作为引用数据类型的一种,在处 ...
随机推荐
- javascript 玩转Date对象
前言:最近在做一个日期选择功能,在日期转换的时候经常换到晕,总结一下常用的Date对象的相关用法,方便日后直接查看使用- 1. new Date()的使用方法有: 不接收任何参数:返回当前时间: 接收 ...
- 如何使用SVN?
一.什么是SVN? SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控制服务已从CVS迁 ...
- js 设置下拉框的默认值
设置下拉框的默认值,直接在option中增加selected就可以了.但是现在要使用JS来设置它的默认值,代码如下: <select name="aaa" id=" ...
- QQ空间魔力日志大全SduSRZ
大家好~最近,在QQ空间里出现了一种神奇的日志,谁看显示谁的信息,在个人中心显示的是一张图片,在日志里显示的又是另一张图片.这就是传说中的魔力日志.魔力日志从今年的9月份开始盛行,因为具有谁看就针对谁 ...
- 面向对象15.3String类-常见功能-获取-1
API使用: 查API文档的时候,有很多方法,首先先看返回的类型 下面的方法函数有的是有覆写Object类的如1.1图,如果没有复写的话是写在1.2图片那里的,如果找到了相对于的方法,可以点击进去可以 ...
- STL—list
前面我们分析了vector,这篇介绍STL中另一个重要的容器list list的设计 list由三部分构成:list节点.list迭代器.list本身 list节点 list是一个双向链表,所以其li ...
- ASP.NET MVC HttpPostedFileBase文件上传
HttpPostedFileBase文件上传,支持多文件一次上传,如有图片,则支持略缩图保存 文件传输信息封装 /// <summary> /// 文件生成方式 /// </summ ...
- c++调用python系列(1): 结构体作为入参及返回结构体
最近在打算用python作测试用例以便对游戏服务器进行功能测试以及压力测试; 因为服务器是用c++写的,采用的TCP协议,当前的架构是打算用python构造结构体,传送给c++层进行socket发送给 ...
- 第一篇:webservice初探
接触webservice也有一段时间了,为了查缺补漏,把知识点系统化,准备写几篇博文梳理下webservice的知识点,这是第一篇,对webservice进行大致的介绍. 1.什么是webservic ...
- Android 应用退到后台
Android 应用退到后台 2016-4-21 10:29:26 Android L moveTaskToBack(boolean nonRoot) 把包含这个Activity的任务转到后台.并不是 ...