every() 返回值是 true 或 false(逻辑且); some() 返回值是 true 或 false(逻辑或); filter() 返回值是给定函数为 true 的元素组成的数组; forEach() 无返回值; map() 返回每次函数调用执行结果组成的数组;
var values = new Array(); count = values.push(5, 10, 12); var everyvalues = values.every(function(item, index, array){ console.log(item); }); // 输出 5 console.log(everyvalues); // 输出 false var somevalues = values.some(function(item, index, array){ console.log(item); }); // 输出 5 10 12 console.log(somevalues); // 输出 false // .every() 和 .some() 的执行情况证明以下两点:1、js 存在 短路求值;2、js 函数的默认返回值是 0,即 false var filtervalues = values.filter(function(item, index, array){ return eval(item) > 5; }); console.log(filtervalues); // 输出 [10, 12] values.forEach(function(item, index, array){ console.log(item + index); // 输出 5 11 14 }); var mapvalues = values.map(function(item, index, array){ return item - index; }); console.log(mapvalues); // 输出 [5, 9, 10]新闻热点
疑难解答