JavaScript中数组的各种操作方法
【监测数组】
- 使用instanceof操作符,进行检测
ar arr = [1,2,3];
// arr = '非非';
if(arr instanceof Array){
console.log('是数组');
}else{
console.log('不是数组');
}备注:ES3中使用instanceof操作符的前提是,当前页面只有一个执行环境,当网页中存在多个框架的时候,这种检测方式出现问题;为了解决这个问题,ES5提出了第二种方法
- Array.inArray()方法
var arr = [1,2,3];
// arr = '非非';
if(Array.isArray(arr)){
console.log('是数组');
}else{
console.log('不是数组');
}备注:IE8是不支持这种检测的,当然了对于其兼容性还是可以实现的;不过现在对于IE8早已无人问津
【数组转换字符串】
- toString()方法
var arr = [
[1,2,3],
['非非','咖啡'],
[8,9]
];
console.log(arr.toString());//1,2,3,非非,咖啡,8,9 - join()方法
var arr = [
[1,2,3],
['非非','咖啡'],
[8,9]
];
console.log(arr.join(','));//1,2,3,非非,咖啡,8,9
console.log(arr.join('||'));//1,2,3||非非,咖啡||8,9
【数组排序】
- reverse()反转数组项的顺序
var arr = [1,2,3,4];
var arr1 = ['非非','琪琪','艾艾'];
console.log(arr.reverse());//[4, 3, 2, 1]
console.log(arr1.reverse());//["艾艾", "琪琪", "非非"] - sort()
- 默认情况下,按升序排列数组项(默认比较的是每一项的字符串形式,toString())
var arr = [1,2,3,4];
var arr1 = ['非非','琪琪','艾艾'];
var arr2 = [1,2,3,4,11];
console.log(arr.sort());//[1, 2, 3, 4]
console.log(arr1.sort());// ["琪琪", "艾艾", "非非"]
console.log(arr2.sort());//[1, 11, 2, 3, 4] - sort()接受一个比较函数的参数
function compare(value1, value2){
if(value1 < value2){
return -1;
}else if(value1 > value2){
return 1;
}else{
return 0;
}
}
// 简化比较函数
function compare(value1, value2){
return value1 - value2;
}
var arr = [1,2,3,4,11];
console.log(arr.sort(compare));//[1, 2, 3, 4, 11]
- 默认情况下,按升序排列数组项(默认比较的是每一项的字符串形式,toString())
【数组插入】
- push()从后面插入新项
var arr = [1,2,3,4];
arr.push(8,9)
console.log(arr);//[1, 2, 3, 4, 8, 9] - unshift()从前面插入新项
var arr = [1,2,3,4];
arr.unshift(8,9)
console.log(arr);//[8, 9, 1, 2, 3, 4] - splice()-插入
var arr = [1,2,3,4,5];
arr.splice(3,0,'非非')
console.log(arr);//[1, 2, 3, "非非", 4, 5]
【数组删除】
- pop()删除数组最后一项
var arr = [1,2,3,4];
arr.pop()
console.log(arr);//[1, 2, 3] - shift()删除数组第一项
var arr = [1,2,3,4];
arr.shift()
console.log(arr);//[2, 3, 4] - splice()-删除
var arr = [1,2,3,4,5,6,7,8,9];
arr.splice(0,3)
console.log(arr);//[4, 5, 6, 7, 8, 9]
【数组替换】
splice()-替换
var arr = [1,2,3,4,5];
arr.splice(2,1,'非非','琪琪')
console.log(arr);//[1, 2, "非非", "琪琪", 4, 5]
【数组位置查找】
var arr = [1,2,'非非',3,4,5,'非非','琪琪'];
console.log(arr.indexOf('非非'));//
console.log(arr.lastIndexOf('非非'));//
【数组合并】
concat()
var arr = [1,2,3,4,11];
var arr1 = ['非非','琪琪'];
console.log(arr.concat(arr1));// [1, 2, 3, 4, 11, "非非", "琪琪"]
console.log(arr1.concat(arr));//["非非", "琪琪", 1, 2, 3, 4, 11]
【数组截取】
slice(),接收一个或两个参数,第一个参数是数组起始位置(结果包括起始位置项),第二个参数是结束位置(结果不包括结束项);支持负数,用长度length减去负数,就是当前项的位置
var arr = [1,2,3,4,5,6,7,8,9];
console.log(arr.slice(1));//[2, 3, 4, 5, 6, 7, 8, 9]
console.log(arr.slice(1,5));//[2, 3, 4, 5]
console.log(arr.slice(-3));//[7, 8, 9]
console.log(arr.slice(-4,-1));//[6, 7, 8]
【迭代方法】
- every()对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true
var arr = [1,2,3,4,5,6,7,8];
var everyMethods = arr.every(function(item, index, array){
return item > 0;
});
console.log(everyMethods);//true - filter()对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组
var arr = [1,2,3,4,5,6,7,8];
var filterMethods = arr.filter(function(item, index, array){
return item > 6;
});
console.log(filterMethods);//[7, 8] - forEach()对数组中的每一项运行给定函数。这个方法没有返回值(与使用for循环迭代数组一样)
var arr = [1,2,3,4,5,6,7,8];
var forEachMethods = arr.forEach(function(item, index, array){
console.log('item=>'+item);
console.log('index=>'+index);
console.log('array=>'+array);
});
console.log(forEachMethods);
// item=>1
// array.html:24 index=>0
// array.html:25 array=>1,2,3,4,5,6,7,8
// array.html:23 item=>2
// array.html:24 index=>1
// array.html:25 array=>1,2,3,4,5,6,7,8
// array.html:23 item=>3
// array.html:24 index=>2
// array.html:25 array=>1,2,3,4,5,6,7,8
// array.html:23 item=>4
// array.html:24 index=>3
// array.html:25 array=>1,2,3,4,5,6,7,8
// array.html:23 item=>5
// array.html:24 index=>4
// array.html:25 array=>1,2,3,4,5,6,7,8
// array.html:23 item=>6
// array.html:24 index=>5
// array.html:25 array=>1,2,3,4,5,6,7,8
// array.html:23 item=>7
// array.html:24 index=>6
// array.html:25 array=>1,2,3,4,5,6,7,8
// array.html:23 item=>8
// array.html:24 index=>7
// array.html:25 array=>1,2,3,4,5,6,7,8 - map()对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组
var arr = [1,2,3,4,5,6,7,8];
var mapMethods = arr.map(function(item, index, array){
return item*2;
});
console.log(mapMethods);//[2, 4, 6, 8, 10, 12, 14, 16] - some()对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true
var arr = [1,2,3,4,5,6,7,8];
var someMethods = arr.some(function(item, index, array){
return item > 6;
});
console.log(someMethods);//true
【归并方法】
reduce()方法 and reduceRight()方法
这两个方法,目前所知的使用方法比较简单,在实际的开发中,完全可以采用其他方式达到这种效果,就先养着吧,万一那一天我明白了,再补上
JavaScript中数组的各种操作方法的更多相关文章
- JavaScript中数组操作常用方法
JavaScript中数组操作常用方法 1.检测数组 1)检测对象是否为数组,使用instanceof 操作符 if(value instanceof Array) { //对数组执行某些操作 } 2 ...
- javascript中数组Array的方法
一.常用方法(push,pop,unshift,shift,join)push pop栈方法,后进先出var a =[1,2,3];console.log(a.push(40)); //4 返回数组的 ...
- Javascript中数组
Javascript中数组 1.什么是数组 所谓的数组就是一组数据的集合,在内存中表现为一段连续的内存地址(保存在堆内存) 2.创建数组的含义 创建数组的目的:就是为了保存更多的数据 3.数组的定义 ...
- javascript中数组常用方法总结
原文:javascript中数组常用方法总结 在javascript的基础编程中,数组是我们最常遇到的,那么数组的一些常用方法也是我们必须要掌握的,下面我们总结一下数组中常用的方法. toString ...
- JavaScript中数组Array方法详解
ECMAScript 3在Array.prototype中定义了一些很有用的操作数组的函数,这意味着这些函数作为任何数组的方法都是可用的. 1.Array.join()方法 Array.join()方 ...
- javascript中数组的常用算法深入分析
Array数组是Javascript构成的一个重要的部分,它可以用来存储字符串.对象.函数.Number,它是非常强大的.因此深入了解Array是前端必修的功课.本文将给大家详细介绍了javascri ...
- javascript中数组化的一般见解
javascript中数组化的一般见解,数组化浏览器中存在许多类数组对象,往往对类数组操作比较麻烦,没有数组那些非常方便的方法,在这种情况下,就有了数组化方法. 数组化的一般方法 1.第一种也是我们最 ...
- 总结Javascript中数组各种去重的方法
相信大家都知道网上关于Javascript中数组去重的方法很多,这篇文章给大家总结Javascript中数组各种去重的方法,相信本文对大家学习和使用Javascript具有一定的参考借鉴价值,有需要的 ...
- JavaScript中数组常用方法的总结
JavaScript中数组Array常用的方法总结 标签(空格分隔): JavaScript ECMAScript数组给我们提供了许多常用的方法,便于我们对数组进行操作,下面,就来总结一下这些方法. ...
随机推荐
- Robust Online Visual Tracking with a Single Convolutional Neural Network
Abstract:这篇论文有三个贡献,第一提出了新颖的简化的结构损失函数,能保持尽量多的训练样本,通过适应模型输出的不确定性来减少跟踪误差累积风险. 第二是增强了普通的SGD,采用了暂时的选择策略来进 ...
- ASP连接读写ACCESS数据库实例(转)
(一) 数据库的选择:有许多的数据库你可以选择,SQL SERVER.ACCESS(*.mdb).EXCEL(*.xls).FOXPRO(*.dbf)甚至普通的文本文件(*.txt)都可以达到存储 ...
- nginx文件类型错误解析漏洞
漏洞介绍:nginx是一款高性能的web服务器,使用非常广泛,其不仅经常被用作反向代理,也可以非常好的支持PHP的运行.80sec发现 其中存在一个较为严重的安全问题,默认情况下可能导致服务器错误的将 ...
- linux中忘记root密码解决方案
方法一: 如果用户具有sudo权限,那么直接可以运行如下命令: #sudo su root #passwd #更改密码 或者直接运行sudo passwd root命令就可以直接更改root密码. 有 ...
- 【Java】 奇偶数的判断
判断方法(奇数): 错误判断方法:通过a%2==1来判断.(原因:负奇数对2取余的结果为-1) 正确判断方法:(1) 通过a%2!=0来判断. (2) ...
- 计算机网络应用层之cookie
一.生活中的cookie 无论你知不知道Cookie是什么,在你的生活中,肯定有使用过它.还记得你使用浏览器浏览网页时,当你要登陆时,网页上有一个记住密码或自动登陆的选项,当你选择时,你就使用了Coo ...
- PHP using mcrypt and store the encrypted in MySQL
This is how I would do it. Create a class to do encryption/decryption: class cipher { private $secur ...
- 转:使用python的Flask实现一个RESTful API服务器端
提示:可以学习一下flask框架中对于密码进行校验的部分.封装了太多操作. 最近这些年,REST已经成为web services和APIs的标准架构,很多APP的架构基本上是使用RESTful的形式了 ...
- Spring Boot 整合MyBatis(1)
这篇文章介绍如何在Spring boot中整合Mybatis,其中sql语句采用注解的方式插入.后续文章将会介绍,如何使用xml方式. SSM SSH框架已经满足轻量级这个需求了,但是对于开发人员而言 ...
- SpringBoot学习(四)
spring boot 默认端口是 8080,如果想要进行更改的话,只需要修改 application.properties 文件,在配置文件中加入: 1. server.port=9090 其他常用 ...