在技术交流群中有人出了一道题,题目如下:
用一行代码取出var arr = [{id: 1},{id:2},{id:3},{id: 4}];中id>3的元素,组成一个新数组。
当时觉得挺简单,自己是这么写的:
var arr = [{id:1},{id:2},{id:3},{id:4}];
var newarr=[];
arr.forEach(function(item,index) {arr[index].id < 3 ? newarr.push(arr[index]):void 0;})
然后看到群里有人用更少的代码写了出来,如下:
var arr = [{id: 1},{id:2},{id:3},{id: 4}];
var newArr = arr.filter(item => item.id < 3);
很棒,ES6箭头函数活学活用,连filter()方法也是看到人家写才想起来
话说虽然自己也看了阮一峰老师的《ES6标准入门》,但是 ⊙﹏⊙Emmmm
把上面提到的知识点列一下,在记忆一遍~
filter()方法使用指定的函数测试所有元素,并创建一个包含所有通过测试的元素的新数组。
filter()基本语法:arr.filter(callback[, thisArg])
filter()实例:筛选排除掉所有的小值
function isBigEnough(element) {
return element >= 10;
}
var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
// filtered is [12, 130, 44]
ES6箭头函数
// ES5写法
$("#confetti-btn").click(function (event) {
playTrumpet();
fireConfettiCannon();
});
// ES6写法
$("#confetti-btn").click(event => {
playTrumpet();
fireConfettiCannon();
});