fill方法
使用指定值填充数组。
语法
array.fill(value [ , start [ , end]])
参数
array:必需。数组对象。
value:必需。用于填充数组的值。
start:可选。用于填充数组值的起始索引。默认值为0。
end:可选。用于填充数组值的结束索引。默认值是this对象的length属性。
备注
如果start为负,则start被视为length+start,其中,length是数组的长度。如果end为负,则end被视为length+end。
实例
[0, 0, 0].fill(7, 1) // [0, 7, 7]
[0, 0, 0].fill(7) // [7, 7, 7]
filter方法
返回数组中的满足回调函数中指定的条件的元素。
语法
array.filter(callback[, thisArg])
参数
array:必需。一个数组对象。
callback:必需。一个接受最多三个参数的函数。对于数组中的每个元素,filter方法都会调用callback函数一次。
thisArg:可选。可在callback函数中为其引用this关键字的对象。如果省略thisArg,则undefined将用作this值。
返回值
一个包含回调函数为其返回true的所有值得新数组。如果回调函数为array的所有元素返回false,则新数组的长度为0。
备注
对于数组中的每个元素,filter方法都会调用callback函数一次(采用升序索引顺序)。不为数组中缺少的元素调用该回调函数。除了数组对象外,filter方法可由具有length属性且具有已按数字编制索引的属性名的任何对象使用。
实例
不带第三个参数
var arr = [5, 'element', 10, 'the', true]
var result = arr.filter(
function (value) {
return (typeof value === 'string')
}
)
console.log(result) // element, the
带第三个参数
var numbers = [6, 12, '15', 16, 'the', -12]
var checkNumericRange = function (value) {
if (typeof value !== 'number')
return false
else
return value >= this.mininum && value <= this.maxinum
}
var obj = { mininum: 10, maxinum: 20 }
var result = numbers.filter(checkNumericRange, obj)
console.log(result) // 12, 16
every方法
语法
array.every(callback[, thisArg])
参数
array:必需。一个数组对象。
callback:必需。一个接受最多三个参数的函数。every方法会为array中的每个元素调用callback函数,直到callback返回false,或直到到达数组的结尾。
thisArg:可选。可在callback函数中为其引用this关键字的对象。如果省略thisArg,则undefined将用作this值。
返回值
如果callback函数为所有数组元素返回true,则为true;否则为false。如果数组没有元素,则every方法将返回true。
备注
every方法会按升序顺序对每个数组元素调用一次callback函数,直到callback函数返回false。如果找到导致callback返回false的元素,则every方法会立即返回false。否则,every方法返回true。
实例
不带第三个参数
var numbers = [2, 4, 5, 6, 8]
function CheckIfEven(value, index, ar) {
console.log(value + '')
if (value % 2 === 0)
return true
else
return false
}
if (numbers.every(CheckIfEven))
console.log('All are even')
else
console.log('Some are not even')
// 2 4 5 Some are not even
带第三个参数
var numbers = [10, 15, 19]
var checkNumericRange = function(value) {
if (typeof value !== 'number')
return false
else
return value >= this.mininum && value <= this.maxinum
}
var obj = { mininum: 10, maxinum: 20 }
if (numbers.every(checkNumericRange, obj))
console.log('All are within range')
else
console.log('Some are not within range')
// All are within range
some方法
语法
array.some(callback[, thisArg])
参数
array:必需。一个数组对象。
callback:必需。一个接受最多三个参数的函数。some方法会为array中的每个元素调用callback函数,直到callback返回true,或直到到达数组的结尾
thisArg:可选。可在callback函数中为其引用this关键字的对象。如果省略thisArg,则undefined将用作this值。
返回值
如果callback函数为任何数组元素均返回true,则为true;否则为false
备注
some方法会按升序索引顺序对每个数组元素调用callback函数,直到callback函数返回true。如果找到导致callback返回true的元素,则some方法会立即返回true。如果回调不对任何元素返回true,则some方法会返回false。
实例
不带第三个参数
var numbers = [1, 15, 4, 10, 11, 22]
function CheckIfEven(value, index, ar) {
if (value % 2 === 0)
return true
}
var evens = numbers.some(CheckIfEven)
console.log(evens)
// true
带第三个参数
var numbers = [6, 12, 16, 22, -12]
var isOutsideRange = function (value) {
return value < this.mininum || value > this.maxinum
}
var range = { mininum: 10, maxinum: 20 }
console.log(numbers.some(isOutsideRange, range))
// true