数组

1.数组的常见方法:
(1) join():省略分隔符参数的话则用默认用逗号为分隔符,不改变原数组,通过join方法可以实现重复字符串
function repeatString(str,n){
    return new Array(n+1).join(str);
}
console.log(repeatString("abc",3));//abcabcabc
 (2) push():可以接收任意数量的参数并添加到数组末尾,返回修改后的数组的长度,同理unsift()
pop()移除数组末尾最后一项,返回移除的项,数组为空则返回undefined,同理shift()
var arr=['q','w','e']
var count=arr.push('k','n');
console.log(count);

var item=arr.pop();
console.log(item);//n
console.log(arr);//['q','w','e','k'];
(3) reverse()反转数组项的顺序
(4)sort()按升序排列数组项,在排序时会调用数组项的toString()转型法来进行排序,哪怕数组项中的每一项都是数值,sort()可以指定一个比较函数(接收两个参数)作为参数来实现数值升序降序。
function compare(value1,value2){
    if(value1<value2){//value1>value2即实现降序
        return -1;
    }else if(value1>value2){//value1>value2即实现降序
        return 1;
    }else{
        return 0;
    }
}
arr=[12,34,23,1];
console.log(arr.sort(compare));//[1,12,23,34];
(5)concat()方法,复制当前数组并添加接收到的参数,最后返回新构建的数组且并不会改变原数组。
var arr=[1,3,5,7];
var arrCopy=arr.concat(9,[11,13]);
console.log(arrCopy);[1,3,5,7,9,11,13];//接收一维数组为参数
var arrCopy2=arr.concat([9,[11,13]]);
console.log(arrCopy2);[1,3,5,7,9,[11,13]];//接收二维数组为参数
(6)slice()方法:返回从原数组指定开始下标到结束下标之间的项组成的新数组,原数组不变,一个参数指定位置到数组末尾,两个参数返回起始和结束的项。
(7)splice()方法:实现删除、插入、替换,(起始位置,指定数量,替换元素),这个会改变原数组,原数组被替换、删除的值会被返回。
var arr = [1,3,5,7,9,11];
var arrRemoved = arr.splice(0,2);
console.log(arr); //[5, 7, 9, 11]
console.log(arrRemoved); //[1, 3]
var arrRemoved2 = arr.splice(2,0,4,6);
console.log(arr); // [5, 7, 4, 6, 9, 11]
console.log(arrRemoved2); // []
var arrRemoved3 = arr.splice(1,1,2,4);
console.log(arr); // [5, 2, 4, 4, 6, 9, 11]
console.log(arrRemoved3); //[7]
(8)indexOf()和lastIndexof(),接收两个参数,要查找的项和表示起点位置的索引,没找到就返回 -1;
(9)forEach()方法:对数组进行遍历循环,对数组中的每一项运行给定函数,传参分别为数组内容,数组索引,数组本身
var arr = [1, 2, 3, 4, 5];
arr.forEach(function(x, index, a){
    console.log(x + '|' + index + '|' + (a === arr));
});
// 输出为:
// 1|0|true
// 2|1|true
// 3|2|true
// 4|3|true
// 5|4|true
(10)map()指的是"映射",对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组
var arr = [1, 2, 3, 4, 5];
var arr2 = arr.map(function(item){
return item*item;
});
console.log(arr2); //[1, 4, 9, 16, 25]
(11)filter()指的是过滤,数组中的每一项运行给定函数,返回满足过滤条件组成的数组
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var arr2 = arr.filter(function(x, index) {
return index % 3 === 0 || x >= 8;
});
console.log(arr2); //[1, 4, 7, 8, 9, 10]
(12)every():判断数组中每一项都是否满足条件,只有所有项都满足条件,才会返回true。some():判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true

var arr = [1, 2, 3, 4, 5];
var arr2 = arr.every(function(x) {
return x < 10;
});
console.log(arr2); //true
(13)reduce和reduceRight(),函数接收4个参数function(前一个值(数组第一项),当前值(数组第二项),索引,数组对象),外加(可选的)作为归并基础的初始值,第一次迭代就是数组第一项,第二项
var values = [1,2,3,4,5];
var sum = values.reduceRight(function(prev, cur, index,
array){
return prev + cur;
},10);
console.log(sum); //25

全部评论

相关推荐

已老实求offer😫:有点像徐坤(没有冒犯的意思哈)
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务