1、有一個長度為100的數組,請以優雅的方式求出該數組的前10個元素之和
var a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
sum = 0;
sum = a.slice(0, 10).reduce(function(pre, current) {
return pre + current;
});
console.log(sum); //55
2、不使用loop循環,創建一個長度為100的數組,並且每個元素的值等於它的下標。
var a = new Array(100);
a = a.map(function(item, index) {
return index;
});
使用了map方法真是高端大氣上檔期啊!一開始,我也以為他的答案是正確的了,但是,后來我在控制台打印了一下,卻發現也是不對的啊,因為,最終打出來的數組是一個長度為100的空的數組,如下:
好奇怪!這么好用的方法竟然輸出的結果也不正確,心好累啊!
后來,查了API,才知道, JavaScript數組是稀疏數組,比如,通過new Array(100)創建一個新的數組的,雖然他的長度是100,但是實際上他是一個空數組,也就是說沒有真實存在的元素。所以使用map方法,根本不會去遍歷這個數組100次的。后來,知乎上問了一下,才學到了一個新的可行的方法,如下:
var a = Array(100).join(",").split(",").map(function(item, index) {
return index;
});
