当前位置: 首页 > 面试题库 >

创建具有相同元素多次重复的数组

郎鸿
2023-03-14
问题内容

在Python [2]的列表中,以下代码给出此输出:

[2] * 5 # Outputs: [2,2,2,2,2]

是否存在使用JavaScript中的数组执行此操作的简便方法?

我编写了以下函数来做到这一点,但是有没有更短或更短的东西呢?

var repeatelem = function(elem, n){
    // returns an array with element elem repeated n times.
    var arr = [];

    for (var i = 0; i <= n; i++) {
        arr = arr.concat(elem);
    };

    return arr;
};

问题答案:

您可以这样做:

function fillArray(value, len) {
  if (len == 0) return [];
  var a = [value];
  while (a.length * 2 <= len) a = a.concat(a);
  if (a.length < len) a = a.concat(a.slice(0, len - a.length));
  return a;
}

它在每次迭代中将数组加倍,因此可以创建很少迭代的真正大数组。

注意:您还可以通过使用push代替来改善您的功能concat,因为concat每次迭代都会创建一个新的数组。像这样(作为一个如何使用数组的示例显示):

function fillArray(value, len) {
  var arr = [];
  for (var i = 0; i < len; i++) {
    arr.push(value);
  }
  return arr;
}


 类似资料:
  • 我有下面的xml结构: 有不同的 Field(X) 包装器元素,它们包含相同的用户元素。XML 中可以发送 n 个字段。因此,我不能为每个单独的Jaxb。我需要访问用户,但在取消编组步骤后忽略 Field 元素。不幸的是,我无权更改xml结构。我无法找到解决方案。任何指针都会有所帮助。

  • 问题内容: 如果我想要一个由character实例组成的对象,是否可以在Java中做到这一点呢? 我们可以做得更好吗?就是想。 问题答案: 这段代码完全没错…但是也许您可以使用:

  • 现在我需要处理错误,并通过一个错误处理程序将其推送到不同的kafka队列中。我正在尝试将EsHandler同时用作发布服务器和订阅服务器。我不确定如何包括EsHandler作为中间人而不是Sink。 这是我的代码:

  • 问题内容: 我正在考虑编写可产生具有重复属性的HTML标签的代码,如下所示: 这是合法的HTML吗?-值之一优先于另一个吗?我可以依靠半现代的浏览器(IE> = 9)来解析它而不会窒息吗? 还是我要在这里做一些真正愚蠢的事情? 问题答案: 在一个元素中两次具有相同的属性名称是无效的。对此的权威性参考有些复杂,因为旧的HTML版本名义上是基于SGML,而对SGML标准的规范性引用暗含了这种限制。在H

  • 我有4个与“HOD”同名的文本,我想点击第一个“HOD”。 我已经尝试了所有这些:1//a[contains(text(),'HOD')][1]2//a[@class=“link_job ng binding”][1]

  • 问题内容: 我的类中有很多div,并且我想使用jquery遍历它们以检查每个div是否满足特定条件。如果为真,则应执行一个操作。 有人知道我会怎么做吗? 问题答案: 使用每个:’ ‘是数组中的位置,是您要迭代的DOM对象(也可以通过jQuery包装器进行访问)。 检查api参考以获取更多信息。