1.push()
这个方法可以向数组的末尾**添加**一个或多个元素,并返回新的长度。需要注意的是,该方法也会改变数组的长度。
var arr = [1, 2, 3, 4, 5];
console.log(arr.push(6, 7)); // 7
console.log(arr); //[1,2,3,4,5,6,7]
2.unshift()
这个方法可以向数组的开头**添加**一个或多个元素,并返回新的长度。需要注意的是,该方法也会改变数组的长度。
var arr = [1, 2, 3, 4, 5];
console.log(arr.unshift(-1, 0)); // 7
console.log(arr); //[-1,0,1,2,3,4,5]
3.pop()
这个方法用于删除数组的最后一个元素并返回删除的元素。需要注意的是,该方法会改变数组的长度。
var arr = [1, 2, 3, 4, 5];
console.log(arr.pop()); // 5
console.log(arr); //[1,2,3,4]
4.shift()
这个方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。需要注意的是,该方法会改变数组的长度。
var arr = [1, 2, 3, 4, 5];
console.log(arr.shift()); // 1
console.log(arr); //[2,3,4,5]
5.concat()
这个方法用来连接两个或多个数组,并返回一个新的数组。该方法不会改变原来的数组。
var arr1 = [1, 2, 3, 4, 5];
var arr2 = [6, 7, 8];
console.log(arr1.concat(arr2)); //[1, 2, 3, 4, 5, 6, 7, 8]
console.log(arr1); //[1, 2, 3, 4, 5]
console.log(arr2); //[6, 7, 8]
6.indexOf()
这个方法找到指定元素在数组里第一次出现的位置,返回指定元素的索引值;如果没有找到,就返回-1。
var arr = [1, 2, 3, 4, 5, 9, 8, 5];
console.log(arr.indexOf(3)); //0 注意:数组下标从0开始
console.log(arr.indexOf(6)); //-1 数组里面没有6所有返回-1
7.join()
这个方法可以把数组的全部元素连接到一起形成一个字符串。使用这个方法时还可以传入一个字符串参数,作为分隔符插入到最终的字符串里。如果省略该参数,则使用逗号作为分隔符。
var arr = [1, 2, 3, 4, 5];
console.log(arr.join()); //1,2,3,4,5
console.log(arr.join("")); //12345
console.log(typeof arr.join()); //String
console.log(arr.join("*")); //1*2*3*4*5
8.slice()
这个方法用于从当前数组中提取一个子集,返回一个新的数组。该方法有两个参数,第一个参数规定从何处开始选取,必需填写;第二个参数可有可无,规定从何处结束选取,该参数是 数组片段结束处的数组下标(不包含该元素),如果没有指定该参数,那么返回的数组包含从选取开始到数组结束的所有元素。注意:该方法不会改变原数组的长度。
var arr = [1, 2, 3, 4, 5, 6, 7, 8];
console.log(arr.slice(2, 5)); //[3, 4, 5]
console.log(arr.slice(2)); //[3, 4, 5, 6, 7, 8]
console.log(arr); //[1, 2, 3, 4, 5, 6, 7, 8]
9.splice()
这个方法可以再数组里添加或删除指定的一个或多个元素。
语法:
array.splice(index,howmany,item1,item2...,itemX)
第一个参数规定在数组的什么位置添加/删除元素。该参数是开始插入或删除的数组元素的下标,必须是数字;
第二个参数规定要删除多少个元素(设置为0表示不删除元素)如果不规定此参数,则删除从index开始到原数组结尾的所有元素;
第三个参数是可选的,是要插入的新元素列表。
注意:该方法会改变原始数组。
var arr = [1, 2, 3, 4, 5];
console.log(arr.splice(2, 1)); // [3]
console.log(arr); // [1, 2, 4, 5]
console.log(arr.splice(2, 0, 7, 8)); //[]
console.log(arr); // [1, 2, 7, 8, 4, 5]
console.log(arr.splice(2, 1, 9)); //[7]
console.log(arr); // [1, 2, 9, 8, 4, 5]
10.sort()
这个方法用于对数组的元素进行排序。排序顺序可以是字母或数组字,并按升序胡或降序的方法。默认排序顺序是按字母升序。需要注意的是,使用数学排序必须通过一个函数作为参数来调用,函数指定数字是按照升序还是降序排列。
var arr = [1, 3, 12, 5, 2, 6, 9];
console.log(arr.sort()); //[1, 12, 2, 3, 5, 6, 9]
cnsole.log(arr.sort(function (a, b) { return a - b; })); //[1, 2, 3, 5, 6, 9, 12]
console.log(arr.sort(function (a, b) { return b - a; })); //[12, 9, 6, 5, 3, 2, 1]
11.reverse()
这个方法用于颠倒数组中元素的顺序
var arr=[1,2,3,4,5];
console.log(arr.reverse()); //[5,4,3,2,1]
数组迭代
1.forEach
forEach() 方法为每个数组元素调用一次函数(回调函数)。
语法: arr.forEach(function(value,index,arr){})
value:数组
index:下标
arr:原数组
例:
var arr = [3, 4, 5, 6];
arr.forEach(function (value, index, arr) {
console.log(value + "下标:" + index +" 原数组"+ arr);
});
/* 3下标:0 原数组3,4,5,6
4下标:1 原数组3,4,5,6
5下标:2 原数组3,4,5,6
6下标:3 原数组3,4,5,6
*/
2.map
map() 方法通过对每个数组元素执行函数来创建新数组;不会对没有值的数组元素执行函数;不会更改原始数组。
var arr = [3, 4, 5, 6];
var result = arr.map(function (value) {
return value * 2;
});
console.log(result); // [6, 8, 10, 12]
3.every
every() 方法检查所有数组值是否通过测试。
//every要求自定义条件都符合的情况下才返回true,否则只要有一个条件不成立就返回false 相当于逻辑与(&&)
var arr = [3, 4, 5, 6];
var result = arr.every(function (item) {
return item % 2 == 0;
})
console.log(result); //false
4.some
some() 方法检查某些数组值是否通过了测试。
//some 要求自定义条件只要有一个符合的情况就返回true,否则返回false 相当于逻辑或(||)
var arr = [3, 4, 5, 6];
var result = arr.some(function (item) {
return item % 2 == 0;
})
console.log(result); //true
5.filter
filter() 方法创建一个包含通过测试的数组元素的新数组。
//filter(过滤) 把符合条件的元素保留返回一个新数组,不符合条件的给过滤掉
var arr = [3, 4, 5, 6];
var result = arr.filter(function (item) {
return item % 2 == 0;
})
console.log(result); //[4, 6]
6.reduce
累加
语法:
reduce(function(initValue,currentValue,index,arr){})
/* initValue:初始值
currentValue:当前值
index:下标值
arr:原数组
*/
//如果设置初始值那么初始值为设定的值,如果没有设定则为数组中的第一个元素
var result = arr2.reduce(function (initValue, currentValue) {
console.log(initValue, currentValue);
return initValue + currentValue;
}, 10)
console.log(result);
/* 10 3
13 4
17 5
22 6
28
*/
作业:如何将字符串翻转?
作业分析:
1.将字符串转化为数组 用split( )方法
2.将数组翻转 用reverse( )方法
3.将数组中的元素再拼接为字符串
代码实现:
var str = "字符串翻转";
var res = str.split(""); //将字符串转化为数组
console.log(res); // ["字", "符", "串", "翻", "转"]
res.reverse(); //将数组里面元素翻转
console.log(res); //["转", "翻", "串", "符", "字"]
var str1 = res.join("");
console.log(typeof (str1)); // String
console.log(str1); //转翻串符字