首页 > 一道JavaScript面试题?

一道JavaScript面试题?

RT:可以使用jQuery库,用一句(或是最简单的)JS代码,写出一个返回从1到n的一个数组的函数;

function(n){
 ……
}

function getArray(n){
    if(typeof n !== 'number'){
        throw new Error('n必须为数字');
    }
    var list = [];
    for(var i =1;i<=n;i++){
        list.push(i);
    }
    return list;
}

// 用jQuery
var arr1 = $(new Array(10)).map(i => i + 1)

// 不用jQuery,ES5才有 .map 方法
var arr2 = new Array(10).join('-').split('-').map((_, i) => i + 1)

// 看到@church的答案后发现还可以这样
var arr3 = [...Array(10)].map((_, i) => i + 1)
/*
 注
 a => x
 (a, b, c) => x
 相当于
 function (a){ return x }
 function (a, b, c){ return x }
*/

更多关于箭头函数的资料看这里JavaScript ES6箭头函数指南


function range(n) {
    return Array.apply(null, Array(n)).map(function (_, i) {return i+1;});
}
range(5);

ES6版本:

function range(n) {
    return [...Array(5).keys()].map((_, i) => i + 1);
}
range(5);

补充一个:

function range(n) {
    return Array.from({length: n}, (_, i) => i + 1);
}
range(5);

我只是stackoverflow的搬运工 http://stackoverflow.com/ques...


在群里看到的,补充一个:

   new Int8Array(10).map((n, i) => i + 1)

function arrayfill(n) {
    return (new Array(n)).fill(0).map((n, i) => i + 1);
}
【热门文章】
【热门文章】