func.apply(thisArg, [argsArray])
用 apply 將數(shù)組添加到另一個數(shù)組
var array = ['a', 'b'];
var elements = [0, 1, 2];
array.push.apply(array, elements);
console.info(array); // ["a", "b", 0, 1, 2]
使用apply和內(nèi)置函數(shù)
/* 找出數(shù)組中最大/小的數(shù)字 */
var numbers = [5, 6, 2, 3, 7];
/* 應(yīng)用(apply) Math.min/Math.max 內(nèi)置函數(shù)完成 */
var max = Math.max.apply(null, numbers); /* 基本等同于 Math.max(numbers[0], ...) 或 Math.max(5, 6, ..) */
var min = Math.min.apply(null, numbers);
/* 代碼對比: 用簡單循環(huán)完成 */
max = -Infinity, min = +Infinity;
for (var i = 0; i < numbers.length; i++) {
if (numbers[i] > max)
max = numbers[i];
if (numbers[i] < min)
min = numbers[i];
}
參數(shù)數(shù)組過大時采用切塊循環(huán)傳入目標的方法
function minOfArray(arr) {
var min = Infinity;
var QUANTUM = 32768;
for (var i = 0, len = arr.length; i < len; i += QUANTUM) {
var submin = Math.min.apply(null, arr.slice(i, Math.min(i + QUANTUM, len)));
min = Math.min(submin, min);
}
return min;
}
var min = minOfArray([5, 6, 2, 3, 7]);