<SCript>
// 1. 增:
// 前增: unshift(元素1,元素2,……)
// 作用:在数组的首部增加新的元素
// 返回值:是新增后数组的长度
// 是否影响原数组:是
var arr = [5,6,7,8,9];
console.log(arr.unshift(1,2,[3,4],true)); //9 新增后数组的长度为9
console.log(arr); // [1,2,[3,4],true,5,6,7,8,9]
// 后增: push(元素1,元素2,……)
// 作用:在数组的尾部增加新的元素
// 返回值:是新增后数组的长度
// 是否影响原数组:是
var arr = [5,6,7,8,9];
console.log(arr.push(1,2,[3,4],true)); //9 新增后数组的长度为9
console.log(arr); // [5, 6, 7, 8, 9, 1, 2, [3,4], true]
// 2. 删:
// 前删: shift()
// 作用:删除数组首部的元素,一次只能删除一个元素
// 返回值:返回被删除的元素
// 是否影响原数组:是
var arr = [5,6,7,8,9];
console.log(arr.shift()); //5 被删除的元素
console.log(arr); // [6, 7, 8, 9]
// 后删: pop()
// 作用:删除数组尾部的元素,一次只能删除一个元素
// 返回值:返回被删除的元素
// 是否影响原数组:是
var arr = [5,6,7,8,9];
console.log(arr.pop()); //9 被删除的元素
console.log(arr); // [5, 6, 7, 8]
// 3. 改:
// splice(从哪个下标开始,删除几个元素,新增元素1,新增元素2,……)
// 作用:要数组的任意位置增、删、改
// 是否影响原数组: 是
var arr = [5,6,7,8,9];
console.log(arr.splice(1)); //[6, 7, 8, 9] 被删除的元素数组
console.log(arr); // [5]
var arr = [5,6,7,8,9];
console.log(arr.splice(1,2)); //[6, 7] 被删除的元素数组
console.log(arr); // [5, 8, 9]
var arr = [5,6,7,8,9];
console.log(arr.splice(1,2,[1,2],true)); //[6, 7] 被删除的元素数组
console.log(arr); // [5, [1,2], true, 8, 9]
var arr = [5,6,7,8,9];
console.log(arr.splice(1,0,[1,2],true)); //[] 被删除的元素数组
console.log(arr); // [5, [1,2], true, 6, 7, 8, 9]
// 4. 截:
// slice(从哪个下标开始,到哪个下标结束)
// 作用:截取数组中指定范围的元素
// 返回值:返回截取到的新数组
// 是否影响原数组:否
var arr = [5,6,7,8,9];
console.log(arr.slice(1)); //[6, 7, 8, 9] 截取到的新数组
console.log(arr); // [5, 6, 7, 8, 9]
var arr = [5,6,7,8,9];
console.log(arr.slice(1,3)); //[6, 7] 截取到的新数组
console.log(arr); // [5, 6, 7, 8, 9]
var arr = [5,6,7,8,9];
console.log(arr.slice(3,1)); //[] 截取到的新数组
console.log(arr); // [5, 6, 7, 8, 9]
var arr = [5,6,7,8,9];
console.log(arr.slice(-3,-1)); //[7, 8] 截取到的新数组
console.log(arr); // [5, 6, 7, 8, 9]
// 5. 拼
// concat(元素1,元素2,……)
// 作用:合并数组,将指定的元素拼接到数组后面。(如果拼接的元素是一个数组,则展开最外层数组,将里面的元素拼接到数组后面)
// 返回值:返回拼接后的新数组
// 是否影响原数组:否
var arr = [5,6,7,8,9];
console.log(arr.concat(-3,[true,[false,0]],null)); // [5, 6, 7, 8, 9, -3, true, [false,0], null] 截取到的新数组
console.log(arr); // [5, 6, 7, 8, 9]
// 6. 复(写出两种复制数组的方法)
function copyArray(arr){
return arr.slice(0);
}
function fnCopyArray(arr){
return arr.concat();
}
//[1,2,3] [1,2,3]
function fnCopyArr(arr){
var new_arr = [];
for(var i = 0,len = arr.length;i < len;i ++){
// new_arr.push(arr[i]);
new_arr[i] = arr[i];
}
return new_arr;
}
// 7. 排
// 1. reverse()
// 作用:逆序原数组
// 返回值:逆序后的数组
// 是否影响原数组:是
var arr = [5,4,6,3,7];
console.log(arr.reverse()); //[7, 3, 6, 4, 5]
console.log(arr); //[7, 3, 6, 4, 5]
// 2. sort()
// 作用:将数组中的元素按照字符串从小到大排列
// 返回值:返回排序后的数组
// 是否影响原数组:是
var arr = [5,10,3,12,20];
console.log(arr.sort()); //[10, 12, 20, 3, 5]
console.log(arr); //[10, 12, 20, 3, 5]
sort(function(a,b){return a-b;})
// 将数组中的元素按照数字从小到大排列
sort(function(a,b){return b-a;})
// 将数组中的元素按照数字从大到小排列
var arr = [5,10,3,12,20];
console.log(arr.sort(function (a,b){return a - b;})); //[3, 5, 10, 12, 20]
console.log(arr); //[3, 5, 10, 12, 20]
var arr = [5,10,3,12,20];
console.log(arr.sort(function (a,b){return b - a;})); //[20, 12, 10, 5, 3]
console.log(arr); //[20, 12, 10, 5, 3]
// 8. 转
// 1. toString() 注:不是数组的方法,是Object对象的方法,是继承给数组的。
// 1.. 用于数字,将数字转为指定进制的字符串(2~36)
// 2.. 用于数组:将数组转为字符串
var arr = [1,2,3,4,5];
console.log(arr.toString()); //'1,2,3,4,5'
console.log(arr); //[1,2,3,4,5]
// 2. join('连接符')
// 作用:将数组转为以指定连接符连接的字符串。
// 返回值:返回字符串
// 是否影响原数组:否
var arr = [1,2,3,4,5];
console.log(arr.join('')); //'12345'
console.log(arr); //[1,2,3,4,5]
[[],[],[]]
[[[]],[[]]]
// 查:
indexOf(元素,开始下标)
// : 查找元素在数组中第一次出现的下标位置,第二个参数决定从哪个下标位置开始向后查找。如果没有找到,返回 -1
lastIndexOf(元素,开始下标)
// : 查找元素在数组中最后一次出现的下标位置,第二个参数决定从哪个下标位置开始向前查找。如果没有找到,返回-1
// 遍历:
forEach(function(value,index,array){}) //取出每一个元素
map(function(value,index,array){ return ...}) //取出每一个元素,而且可以对元素进行操作。返回一个新数组。
filter(function(value,index,array){return ...}) //遍历出每一元素,进行按条件过滤,返回过滤后的数组
some(function(value,index,array){return ...}) //如果遍历出的元素只要有一个满足条件,则退出循环,返回true 。如果所有元素都不满足条件,返回false
every(function(value,index,array){return ...}) //如果遍历出的元素只要有一个不满足条伯,则退出循环,返回false。 如果所有元素都满足条件,返回true
reduce(function(prev,next,index,array){return ...})) //归并
//当第一次循环的时候,prev中存入的是数组中第一个元素,next第二个元素。
//从第二次循环开始,prev中存入的是 prev 与 next 运算后的结果。next依次取后面的每一个元素
//返回处理后的结果
</SCript>
</body>
</html>```