JS从零开始(29)

59 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第29天,点击查看活动详情

every()

联想逻辑与运算符,这个方法需要让数组中每一项运行的结果的返回值为true时,这个方法才能够整体返回true,如果有一项返回了false,则整体返回false,全真才为真,一假都为假,如;

var array1 = ['你好', '哈哈', '苹果', '香蕉', '火龙果'];
var result = array1.every(function (content) {
    if (content.length > 2) {
        return false;
    }
    return true;
});
console.log(result);//false

解释:通过把数组中的元素传给function函数,再获取该元素的长度,和2进行比较,如果长度大于2,则返回false,这时,一假都为假,整体便返回false。当然,如果将2改为3的话,那么返回值便是true了。

some()

这个方法和every()刚好相反,一真即真,全假才为假,如:

var array1 = ['你好', '哈哈', '苹果', '香蕉', '火龙果'];
var result = array1.some(function (content) {
    if (content.length > 2) {
        return true;
    }
    return false;
});
console.log(result);//true

数组的遍历方法

我们之前讲过用for循环和while循环来遍历数组,现在我们可以用这几种方法可以替代一些,而且这几种方法不会改变原数组。

方法解释说明备注
every()
filter()对数组中的每个数组元素进行处理,提取返回结果为true的数组元素组成新数组,并将其返回参数是回调函数
forEach()只支持 IE8 以上的浏览器,参数是回调函数
map()对数组中的每个数组元素进行处理,返回运行后的结果,将其组成新数组并返回一般不会改变原数组

every()方法我们讲过了,这里不再赘述。

filter()

使用这个方法时,要注意返回的是原数组中某些数组元素组成的新数组,并不是回调函数返回的结果!,如:

var array2 = [1, 5, 2, 8, 4, 6, 3, 7];
var array3 = array2.filter(function (content) {
    if (content > 5) {
        return content;
    }
    return false;
});
console.log(JSON.stringify(array3));//[8,6,7]