Javascript:编写一个接收数字的函数,并多次返回一个包含该数字的数组

时间:2016-01-07 12:41:41

标签: javascript arrays numbers push

我是编程和数学概念的完全新手(在大学学习数学101)所以我正在努力解决这个问题:

  

编写一个接收数字的函数,并多次返回一个包含该数字的数组。

这是我到目前为止的代码:

    function numReturn(x) {
         var newArray = [];
         if (typeof x === "number") {
             return newArray.push[x]* x;
         } else {
             return null;
         }
     }

这是我的思考过程:

  1. 创建一个可以输入数字的函数x。
  2. 在该函数中,创建一个空白数组,以便稍后可以将值推送给它。
  3. 检查输入的typeof值是否为数字。如果是,则将其返回到空白数组的末尾。否则,请返回null
  4. 当我把它放在Javascript控制台并插入一个值时,它会返回undefined。任何人都有我的一些指示?

5 个答案:

答案 0 :(得分:3)

function a(i) {
    var a = new Array(i);
    return a.fill(i);
}

return new Array(i).fill(i);,简称。测试:

a(4)
// --> [4, 4, 4, 4]

Array.prototype.fill()是一种ES6方法,尚未普遍实施。 Chrome和Firefox都有它,IE没有 - 但是有一个polyfill可用。

比较:http://kangax.github.io/compat-table/es6/#test-Array.prototype_methods_Array.prototype.fill

答案 1 :(得分:1)

为了做任意次数的事情,人们使用循环。有几个循环,但这里for循环是最合适的。

for循环具有以下结构:

for(var i = 0; i < x; i++) {
    // ^initializer
    //         ^condition
    //                ^increment
    //body
}

初始化程序是在进入循环时完成的第一件事。在这种情况下,它意味着名为i的变量设置为0。然后检查条件x。如果条件i < x成立,则执行循环:执行主体。在执行主体之后,执行增量(此处为i++),然后重新检查条件,如果条件仍然成立,则再次执行循环,依此类推。

您可以按如下方式应用此概念:

function numReturn(x) {
    var newArray = [];
    if (typeof x === "number") {
        for(var i = 0; i < x; i++) {
            newArray.push(x);
        }
        return newArray;
    } else {
        return null;
    }
}

答案 2 :(得分:1)

这:newArray.push[x]* x不推x次。 *运算符只是总是和只乘以数字。你想推x次,所以使用这样的for

for (var i = 0; i < x; i++ )
      newArray.push(x);

然后返回newArray

答案 3 :(得分:1)

回答Most efficient way to create a zero filled JavaScript array?

function numReturn(x){
    return Array.apply(null, Array(x)).map(Number.prototype.valueOf,x);
}
console.log(numReturn(10)); // [10, 10, 10, 10, 10, 10, 10, 10, 10, 10]

答案 4 :(得分:0)

&#13;
&#13;
var n = 7
var result = Array.apply(null, {length: n}).map(function(){return n})

// Demo output
document.write(JSON.stringify(result))
&#13;
&#13;
&#13;

作为功能:

function numReturn(x) {
     if (typeof x === "number") {
         return Array.apply(null, {length: n}).map(function(){return n})
     } else {
         return null;
     }
 }
相关问题