js数组的各种方法
1.检测数组
①Instanceof:
if(value instanceof Array){
}
它假定只有一个全局执行环境,若网页中包含多个框架,则存在多个不同的全局执行环境,则Instanceof不能正确检测;
② Array.isArray()
无论几个全局执行环境都可以;
if(Array.isArray(value)){
}
2.转换方法
③ toString()
会返回数组的每个值拼接起来的字符串(以逗号分隔);不会影响原数组;
var colors=['red','black','blue'];
colors.toString();//red,black,blue
④ valueOf()
返回数组; 不会影响原数组;
var colors=['red','black','blue'];
colors.valueOf();// ["red", "black", "blue"]
var colors=['red','black','blue'];
alert(colors.valueOf());//red,black,blue
//因为alert()要接受字符串参数,所以其会在后台调用toString()方法,所以弹出的是字符串
⑤ toLocaleString()
与上两个相同;
⑥ join()
接收一个参数,用作字符串的分隔符,返回字符串; 不会影响原数组;
var colors=['red','black','blue'];
colors.join('||');// red||black||blue
3.栈方法
⑦ push()
将接受到的参数添加到数组末尾,返回字符串的长度; 影响原数组;
var colors=['red','black','blue'];
colors.push('green','pink'); //5
⑧ pop()
移除数组末尾的最后一项,返回移除的项;影响原数组;
var colors=['red','black','blue'];
colors.pop(); //blue
pop()和push()结合使用,可以实现队列方法;
4.队列方法
⑨ shift()
移除数组的第一项,并返回该项;影响原数组;
1 var colors=['red','black','blue'];
2 colors.shift(); //red
⑩ push()
shift()和push()结合使用,可以实现队列方法;
11. unshift()
将接受到的参数添加到数组前端,返回字符串的长度;
var colors=['red','black','blue'];
colors.unshift("green"); //4
5.重排序方法
12. reverse()
反转数组项顺序,改变数组本身,返回数组本身;;
var number=[1,2,3,5,4];
value=number.reverse(); //[4, 5, 3, 2, 1]
console.log(value) // [4, 5, 3, 2, 1]
console.log(number) // [4, 5, 3, 2, 1]
13.sort()
改变数组本身的值,返回数组本身;
var number=[1,2,3,5,4];
value=number.sort(compare); //[1,2,3,4,5 ]
function compare(a,b){
return a-b;
}
console.log(number); //[1, 2, 3, 4, 5]
6.操作方法
14. concat()
连接几个数组,返回新构建的数组;不会影响数组本身;
var colors=['red','black','blue'],col=["pink","green"],colo=['brown']; colors.concat(col,colo,'yellow');
//["red", "black", "blue", "pink", "green", "brown", "yellow"]
15. slice()
接受1或2个参数,即返回项的起始和结束位置;不会影响数组本身;
var colors=['red','black','blue'];
colors.slice(1,2); //["black"]
colors.slice(1); // ["black", "blue"]
16. splice()
原数组随之改变;返回删除的项(数组形式),若未删除则返回空数组;
输入2个参数: 起始位置和要删除的数组长度;
删除:
var colors=['red','black','blue'];
colors.splice(1,2); //["black", "blue"]
console.log(colors); //["red"]
输入3个参数:
插入: 起始位置,要删除的数组长度(0),要插入的项;
var colors=['red','black','blue'];
colors.splice(1,0,'green'); //[]
console.log(colors); //["red", "green", "black", "blue"]
替换: 起始位置,要删除的数组长度,要插入的项;
var colors=['red','black','blue'];
colors.splice(1,1,'green','purple'); //["black"]
console.log(colors); //["red", "green", "purple", "blue"]
7.位置方法
17. indexOf() :从开头往后查找
输入:要查找的项和(查找起点位置的索引){默认为0};返回要查找的项在数组中的位置;
var colors=['red','black','blue','black','green'];
colors.indexOf('black'); //1
colors.indexOf('black',2); //3
18.lastIndexOf() :从末尾往前查找
输入:要查找的项和(查找起点位置的索引){默认为length-1};返回要查找的项在数组中的位置;
var colors=['red','black','blue','black','green'];
colors.lastIndexOf('black'); //3
colors.lastIndexOf('black',2); //1
8.迭代方法
every(),filter()…
http://www.cnblogs.com/sunmarvell/p/8674935.html
9.归并方法
24 reduce()
迭代数组的所有项,构建一个最终返回值; 不改变原数组的值
从第一项开始,逐个遍历到最后;
var number=[1,2,3,5,4];
value=number.reduce(compare); //-13
function compare(a,b){
return a-b;
}
console.log(number); //[1,2,3,5,4]
25 reduceRight()
迭代数组的所有项,构建一个最终返回值; 不改变原数组的值
从最后一项开始,逐个遍历到第一项;
var number=[1,2,3,5,4];
value=number.reduceRight(compare); //-7
function compare(a,b){
return a-b;
}
console.log(number); //[1,2,3,5,4]
js数组的各种方法的更多相关文章
- js数组去重的方法(转)
JS数组去重的几种常见方法 一.简单的去重方法 // 最简单数组去重法 /* * 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中 * IE8以下不支持数组的indexOf方法 * */ ...
- js数组高阶方法reduce经典用法代码分享
以下是个人在工作中收藏总结的一些关于javascript数组方法reduce的相关代码片段,后续遇到其他使用这个函数的场景,将会陆续添加,这里作为备忘. javascript数组那么多方法,为什么我要 ...
- JS —— 数组与字符串方法
数组 1. 基本方法 1)Array.prototype.unshift(item1,item2,item3...) 描述: 在数组的前面添加元素,一次可以传入多个参数. 注意:元素会根据当前传入的 ...
- JS 数组常用的方法
数组常用的方法: x.toString()方法:任何对象都有toString方法. 将任何对象转为字符串. 一般不主动调用,系统在需要时自动调用 x.valueOf()方法:同toStr ...
- js数组的forEach方法能不能修改数组的值
如果要使用数组的forEach()方法对其改值时,需要直接通过arr[i]这种方式来更改. 请看下面代码: // 数组改值 let arr = [1,3,5,7,9]; arr.forEach(fun ...
- Js 数组的各种方法及操作
一.数组去重 var arr = [0,1,20,3,0,45,6,0]; Array.prototype.unrepeat = function(){ var array = []; for(var ...
- js数组之迭代方法
ES5为数组对象定义了5个迭代方法(即递归,简单的说就是自己可以调用自己). 每个方法接收两个参数:要在每一项上运行的函数(接收3个参数:数组项的值,该项在数组中的位置,数组对象本身)和(可选的) ...
- js数组声明+split()方法
split()方法:var words = sentence.split(' '): "hello".split("", 3) //可返回 ["h&q ...
- js 数组中的方法
<!DOCTYPE html><html><head> <title>数组的方法</title> <meta charset=&quo ...
- 两种js数组去重的方法
方法一: 新建一个数组,遍历原数组,在新数组内用IndexOf查找原数组内的每一项,如果没有找到,则添加到其中 代码如下: function arrayNew(arrs ){ var newArray ...
随机推荐
- Ubuntu 16.04安装SoapUI工具进行接口测试(Web Service/WSDL/RESTfull)
SoapUI是一个跨平台接口测试工具,官方提供开源版本和商业版本.可以用来测试WSDL/RESTfull等接口. 替代的工具有JMeter. 一般用于WSDL的接口测试比较多,基于XML的形式,且这类 ...
- searchIndexer.exe占用过高CPU
1.searchIndexer.exe占用过高CPU很可能是Windows的索引损坏造成的. 这时候只要进入控制面板—索引选项—高级—重建即可解决 2. net stop "windows ...
- Eclipse的SVN插件 Subclipse
原文:https://www.oschina.net/p/subclipse Subclipse 是一个为 Eclipse IDE 添加 Subversion 支持的项目.支持几乎所有版本的Eclip ...
- 【CV论文阅读】Deep Linear Discriminative Analysis, ICLR, 2016
DeepLDA 并不是把LDA模型整合到了Deep Network,而是利用LDA来指导模型的训练.从实验结果来看,使用DeepLDA模型最后投影的特征也是很discriminative 的,但是很遗 ...
- javascript 閉包
這兩種寫法都是可以的. 第一種: function a(){ var m=[]; for(var i=1; i<10; i++){ (function(i){ function b(){ con ...
- hdu 3006 The Number of set(思维+壮压DP)
The Number of set Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- chrome.socket
chrome.socket https://chajian.baidu.com/developer/apps/socket.html#method-create 描述: 使用 chrome.socke ...
- 【Silverlight】Bing Maps学习系列(一):开发前的准备工作
[Silverlight]Bing Maps学习系列(一):开发前的准备工作 微软推出的Bing Maps地图引擎,对外开放了Silverlight和Ajax两种客户端API,同时微软针对全球地图还推 ...
- Java 过滤器、监听器、拦截器的区别
原文:http://www.360doc.com/content/10/0601/09/495229_30616324.shtml 1.过滤器 Servlet中的过滤器Filter是实现了ja ...
- [Codeforces 460C] Present
[题目链接] https://codeforces.com/contest/460/problem/C [算法] 二分 + 贪心 要求最小值最大 , 我们不妨二分最小值 , 若一盆花的高度小于二分的值 ...