colors=["red", "橘色", "瓜皮色", "古铜色", "#aaa", "#bbb", "#ccc"]
(1). every(func(e,idx,arr)) // 对数组每一项都执行func,所有都返回true,结果才返回true,否则false;
colors.every(function(e,i,arr){ if(e.length>0){ alert(e.length) return 1; }else{ alert('Blank String'); return 0; } }); >>>false;
(2). some(func(e,idx,arr)) // 对数组每一项都执行func,某一个返回true,结果就返回true;
所有都返回false, 结果才是false;
a=2; colors.some(function(e,i,arr){ a=a+1; if(e.length>0){ alert("Have one Not Empty") return 1; }else{ alert('Blank String'); return 0; } }); a >>>a=3 //可见function只执行了一次,返回true就不执行了。
(3). filter(func(e,idx,arr)) // 对数组中每个元素执行func,返回其中为true的元素。
colors >>>["red", "橘色", "瓜皮色", "古铜色", "#aaa", "#bbb", "#ccc", ""] filtered_colors = colors.filter(function(e,i,arr){ a=a+1; if(e.length>0){ alert("Have one Not Empty") return 1; }else{ alert('Blank String'); return 0; } }); filtered_colors >>>["red", "橘色", "瓜皮色", "古铜色", "#aaa", "#bbb", "#ccc"] //a=10
(4). forEach(func(e,idx,arr)) // 对数组中的每一个元素执行指定函数func,无返回值。
colors.forEach(function(e,i,arr){ alert('元素:' + e + ',索引:' + i + ';数组是:【' + arr + '】'); });
(5). map(func(e,idx,arr)) // 对数组每个元素执行指定函数func,返回结果是一个数组,其中的元素是每个元素执行func函数时调用的返回值。
arr = colors.map(function(e,i,arr){ return e + '@' + i + '@' + e.length; }); arr >>>["red@0@3", "橘色@1@2", "瓜皮色@2@3", "古铜色@3@3", "#aaa@4@4", "#bbb@5@4", "#ccc@6@4", "@7@0"]