一:数组方法
var arr = [];
1.arr.push()//给数组末尾<添加>元素
2.arr.unshift()//给数组头部<添加>元素
3.arr.shift()//删除数组<头部>元素//返回值为被删除的元素
4.arr.pop()//删除数组<末尾>的元素//返回值为被删除的元素
看图示意:
头部 尾部
↑ ↑
unshift-----添加-----push
↑ ↑
shift-------删除-----pop
5.arr.splice(从那个下标开始操作,删除的数量,添加的元素1,添加的元素2,添加的元素3...)//万能法返回值为被删除元素的数组[被删除元素];
注:以上五种方法会改变原数组
6.arr.join()默认用英文下的都好拼接,可改变拼接的字符串arr.join('-')
eg:
1) var arr = ['2018','1','23'];
var newArr = arr.join('/');
console.log(newArr);结果为 2018/1/23;
2)页面跳转后,顶部地址栏中的信息变化的拼接.
var param = {
q:'棉衣';
commend:'all';
search_type:'item';
}
var Aparam = []; //定义数组存放param对象中的属性和属性值.
for(var attr in param){ //遍历对象中的每一个属性. attr为属性的下标
Aparam.push(attr + "=" + Aparam[attr]);//输出结果为 q=棉衣commend=allsearch_type=item
}
console.log(Aparam.join('&'));输出结果为q=棉衣&commend=all&search_type=item
7.arr.slice(从哪个下标开始分割,到那个下标的后一个下标点结束分割.);//支持-1,但从又开始分割.下标依然从做开始0123...
8.arr.concat(arr2);//合并数组arr和数组arr2;
9.arr.reverse()//改变原数组的元素顺序
10.arr.sort()//数组的排序但一般情况下会在sort中自定义一个比较大小的函数
eg:
var arr = [103,500,204,300];
arr.sort(
function (a,b) {
if(a>b){
return 1;//返回值1则a,b互换位置
} else{
return -1;//返回值为-1则a,b不换位置
}
}
)
console.log(arr);//输出结果为103,204,300,500;
二:新增方法
a)新增函数方法
1.bind()// 返回值为一个新的函数.bind改变的是该函数内部的this指向.this默认指向为window;
eg:
var obj = {
name: '马冬梅'
};
var name = '宋东浦';
function hello(x, y) {
var name = '胡锋';
console.log(arguments);
console.log(this.name);//this指向window.全局变量为window自身的属性.
console.log(x + y);
}
var newHello = hello.bind(obj, 6); this =obj 将obj的对象地址赋值给this.此时this指向为obj这个对象
newHello(7, 9);//最终结果为马冬梅13.9也是所传入的一个实参但是没有一个形参去接收他.
b)新增数组方法
1.arr.forEach(function(v,k,arr){},context) //循环数组
v代表数组中的元素,k代表v这个元素的下标,arr代表整个数组.context代表回调函数中this所指向的地址
eg:
var arr = [1,3,5,4,9,7];
arr.forEach(function(v,k,arr){
console.log(this) // this指向context
console.log(v,k,arr)
},'this所指向的地址');
注:使用forEach()这个方法可以遍历数组.使用多用在this指向.
2. arr.map(function(v,k,arr){},context)//语法与forEach相同,也是遍历数组,但需要一个变量 来接收返回的值.
var newArr = arr.map(function(v){
return v *= 2;
})
console.log(newArr);
注:返回值为数组的每个元素的2倍.
3.arr.filter(function(v,k,arr){},context)//语法与前两个相同,遍历数组的作用,
eg:
var arr = [3,6,2,7,9,1]
var newArr = arr.filter(function(v){
if(v >5){
return true; 结果为true会将v这个元素返回出去.
} else {
return false;
}
})
console.log(newArr); //输出结果为6,7,9
注:过滤数组中大于5的元素并输出
4.arr.some(function(v,k,arr){},context)//返回值为boolean类型 true或false
eg:
var newArr = arr.some(function(v){
if(v > 5){
return true;
} else {
return false;
}
})
注:some是只要数组中有一个满足条件返回值都为true.否则为false
5.arr.every(function(v,k,arr){},context)//返回值为boolean类型 true或false
eg:
var newArr = arr.every(function(v){
if(v > 5){
return true;
} else {
return false;
}
})
注:every是当数组中的所有元素满足条件时,返回为true.否则返回false
6.arr.indexOf(a,b)//在数组中查找元素.返回结果为所找到的元素的下标,则返回-1 a为所需查找的元素,b为从哪里开始的下标.b可以为负值
注:从左往右开始查找区别于7.
7.arr.lastIndexOf(a,b)//作用与indexOf相同,但是lastIndexOf是从右往左开始查找.
8.归并或递归减少
arr.reduce(function(previous,current,index,arr){},initialValue)
previous 为上一次计算的结果,若没有进行计算或者初始化值,则默认数组的第一个元素为revious.
current 为当前数组的元素,若没有进行计算或者初始化赋值则默认为第二个元素,
index 为current的元素的下标.
arr 为整个的数组
initialValue 为初始化的值相当于给previous赋初始化的值.
eg:
var arr = [1,4,7,9];
var result = arr.reduce(function(previous,current,index,arr){
console.log(previous,current,index,arr);
return previous + current;
},10);
console.log(result);
解析: previous的初始值为initialValue所赋的值 = 10;
此时current当前值为1,;
return 10 + 1;
previous 为上一次计算得结果,所以为11;
当前值变为4;
return 11 + 4 +7 +9;
最终结果为31;
9. arr.reduceRight(function(previous,current,index,arr){},initialValue);
注:用法与arr.reduce相同,但是计算是是从右往左开始查找元素.
10.Array.isArray():判断一个变量是否为数组 返回结果为true 或者false
三:字符串新增
1.str.trim() 去掉输出结果左右两侧的空格.
eg:
2.var obj = {name:'苏三',age:'80'}
console.log(JSON.stringify(obj));
注:将对象格式化为一个字符串
3.var str = '{ "name":"苏三","age":"80" }'; 其中的双引号不能少,必须写上.
console.JSON.parse(str);
注:将一个JSON格式的字符串变为一个对象. JSON格式其实指的就是对象的格式,全称为 javascript object notation;
四:字符串
1.属性:
console.log(str.length);
console.log(str.constructor);
五:字符串的方法
var str= 'hello world';
1.console.log(str.charAt(4));输出结果为o.4为下标.输出字符串中的某个元素,
2.console.log(str.charCodeAt(4));输出结果为111.这里的4指的是下标为4的字符所代表的ASCll码值.o的ASCLL值为111;
3.console.log(String.fromCharCode(111));输出结果为o 根据ASCLL码值进行转换.
是静态转换.可理解为一条单独的输出语句.输出的结果与定义的字符串无任何关系.详情参照ASCLL码表
4.console.log(str.indexOf('e'));与数组的新增方法arr.indexOf()相同,都是查找元素,找到后返回该元素的下标,找不到返回-1;
5.console.log(str.lastIndexOf(e));与数组的新增方法arr.lastIndexOf()相同.
6.console.log(str.match('ll'));匹配字符串中的字符,匹配的到,输出结果为数组,匹配不到输出结果为null.(结合正则来用.)
7.console.log(str.search('ll'));如果匹配到的元素则返回元素的下标.如果找不到则返回-1;输出结果与indexOf相同
配合正则使用
8.console.log(str.replace('ll','**'))替换字符串中的某元素,将子字符串中的ll转换为**
9.console.log(str.slice(a,b));用法与数组的分割相同.
难点:分割点到所需要分割的重点的后一个下标为止.
10.console.log(str.substring(a,b))用法与slice相同但是区别:这里的a,b不能赋负值.
11.console.log(str.substr(a,b));a为这里分割的起止点,b为分割的长度.
注:尽量不要使用,ECMA为对其进行规定.各大浏览器可能不支持,不建议使用.
12.console.log(str.split('ll'))切割字符串中的ll.扔掉ll并返回一个数组.
eg:
var str = 'a=b&c=d&e=f';
console.log(str.split(&));输出结果为a=b,c=d,e=f;
13.console.log(str.toUpperCase());将字符串的所有字母转换为大写.
14.console.log(str.toLowerCase());将字符串中的所有字母转换为小写.
- 转载收藏(js数组方法大全)
js数组方法大全 JavaScript中创建数组有两种方式 (一)使用 Array 构造函数: var arr1 = new Array(); //创建一个空数组var arr2 = new Arra ...
- js数组方法大全(下)
# js数组方法大全(下) 记录一下整理的js数组方法,免得每次要找方法都找不到.图片有点多,注意流量,嘻嘻! 本期分享 forEach() map() filer() every() some() ...
- js 数组方法比较
js 数组方法比较 table th:first-of-type { width: 80px; } table th:nth-of-type(2) { width: 120px; } table th ...
- js数组方法详解
Array对象的方法-25个 /*js数组方法详解 */ /* * 1 concat() 用于连接多个数组或者值-------------- * 2 copyWithin() 方法用于从数组的指定位置 ...
- js数组方法大全(上)
# js数组方法大全(上) 记录一下整理的js数组方法,免得每次要找方法都找不到.图片有点多,注意流量,嘻嘻! 本期分享 join() reverse() sort() concat() slice( ...
- 几个关于js数组方法reduce的经典片段
以下是个人在工作中收藏总结的一些关于javascript数组方法reduce的相关代码片段,后续遇到其他使用这个函数的场景,将会陆续添加,这里作为备忘. javascript数组那么多方法,为什么我要 ...
- js数组方法大全
JavaScript中创建数组有两种方式 (一)使用 Array 构造函数: var arr1 = new Array(); //创建一个空数组var arr2 = new Array(20); // ...
- js数组方法详解(最新最全)
数组是js中最常用到的数据集合,其内置的方法有很多,熟练掌握这些方法,可以有效的提高我们的工作效率,同时对我们的代码质量也是有很大影响.本文所有的栗子都是在es7环境下测试的,如果有问题欢迎留言交流 ...
- JS数组方法汇总 array数组元素的添加和删除
js数组元素的添加和删除一直比较迷惑,今天终于找到详细说明的资料了,先给个我测试的代码^-^ var arr = new Array(); arr[0] = "aaa"; arr[ ...
随机推荐
- GUI自动测试化工具 Ranorex Studio 使用介绍
之前用的VS自带的测试工具进行Winform的测试.但是有一个第三方的插件,没有被更好的支持. 提示消息: 测试方法 EnformentUITestProject.CodedUITest1.Coded ...
- windows10下Python如何设置环境变量
1.右击“我的电脑”,选择“属性”, 2.选择“高级系统设置”, 3.选择“环境变量”, 4.在“系统变量”中选中“Path”,再点“新建”.(Python.Scripts两个目录都要加,只加Pyth ...
- wyx20162314实验报告二
北京电子科技学院BESTI实验报告 课程:程序设计与数据结构 班级: 1623 姓名: 王译潇 学号:20162310 指导教师:娄佳鹏老师.王志强老师 实验日期:2017年3月26号 实验密级: 非 ...
- 20145109 实验二 Java面向对象程序设计
实验二 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 S.O.L.I.D原则: ...
- MyEclipse/Eclipse中properties文件中文乱码问题解决
有时候在myeclipse或者eclipse中打开properties文件时会发现其中的中文都是乱码.这是由于当前的properties文件编码格式不支持汉字造成的.当这种情况发生时,我们可以按照以下 ...
- shell脚本多进程
shell脚本再执行过程中就一个进程,从头到尾 下面配置shell脚本执行过程中启动多个进程同时执行 #!/bin/bash for ((i=1;i<=10;i++)) do ( echo &q ...
- struts2标签库详解
要在jsp中使用Struts2的标志,先要指明标志的引入.通过jsp的代码的顶部加入以下的代码: <%@taglib prefix="s" uri="/struts ...
- 有关写log的思考
前言 在软件开发过程中,log往往是不太引人注意的环节,大部分的log都只是开发人员为了调试bug临时加上的.这样出来的软件,最后的log往往杂乱无章没有系统性.我们判断一个软件系统的log写的好不好 ...
- Oracle索引以及索引碎片
索引,可以增加查询速度,若没有索引,每次查询都必须是全表查询.例如,搜索某个记录时(如name="gdpuzxs")时,需要全表扫描一下,因为不知道有多少个name="g ...
- BZOJ 3698 XWW的难题:有上下界的最大流
传送门 题意 给你一个 $ n*n $ 的正实数矩阵 $ A $ ,满足XWW性. 称一个 $ n*n $ 的矩阵满足XWW性当且仅当: $ A[n][n] = 0 $ 矩阵中每行的最后一个元素等于该 ...