数组 的扩展方法

119 阅读1分钟
移除数组中指定的元素
/**
 * 移除数组中指定的元素
 * @param arr 数组
 * @param delVal 需要移除的元素 
 */
function clear(arr, delVal) {
	for(let i = 0, l = arr.length; i < l; i++){
		// if(this[i] === delVal){
		//     this.splice(i, 1)
		//     i--
		// }
		
		// 以下写法考虑到NaN
		if(Object.is(arr[i], delVal)){
			this.splice(i, 1)
			i--
		} 
	}
}
求数组中的最大值 - es6
function max (arr){
    return Math.max(...arr)
}

也可以写成如下:

Math.max.apply(null, arr)
求数组中的最小值 - es6
function min (arr){
    return Math.min(...arr)
}

同上,也可以写成如下:

Math.min.apply(null, arr)
对数组进行排序 - 升序

如果数组的每一项是对象,则需要传key,按照一项中的某个key进行排序

function asc(arr, key){
    if(key === undefined){
        return arr.sort((a,b) => a - b)
    }
    return arr.sort((obj1, obj2) => obj1[key] - obj2[key])
}
对数组进行排序 - 倒序

如果数组的每一项是对象,则需要传key,按照一项中的某个key进行排序

function asc(arr, sort){
    if(key === undefined){
        return arr.sort((a,b) => b - a)
    }
    return arr.sort((obj1, obj2) => obj2[key] - obj1[key])
}