在Javascript中有没有一种方法可以很容易地编写这样的东西:

[1,2,3].times do {
  something();
}

有可能支持类似语法的库吗?

Update: to clarify - I would like something() to be called 1,2 and 3 times respectively for each array element iteration

推荐答案

This answer is based on Array.forEach, without any library, just native vanilla.

To basically call something() 3 times, use:

[1,2,3].forEach(function(i) {
  something();
});

考虑到以下功能:

function something(){ console.log('something') }

输出将是:

something
something
something

To complete this questions, here's a way to do call something() 1, 2 and 3 times respectively:

It's 2017, you may use ES6:

[1,2,3].forEach(i => Array(i).fill(i).forEach(_ => {
  something()
}))

或者在旧版ES5中:

[1,2,3].forEach(function(i) {
  Array(i).fill(i).forEach(function() {
    something()
  })
}))

在这两种情况下,输出都是

输出将是:

something

something
something

something
something
something

(一次,然后两次,然后三次)

Jquery相关问答推荐

在shiny 的datatable列中启用智能搜索

多个 AJAX 调用;获取所有失败的呼叫

退出 jquery.each 循环后

$ 不是函数 - jQuery 错误

如何使用 jquery 获取屏幕的高度

jquery数据表隐藏列

jQuery - 向下滚动时缩小的粘性标题

在 jQuery 中,我想删除 div 中的所有 HTML

jQuery切换CSS?

用按钮切换显示/隐藏div?

JSLint 消息:未使用的变量

禁用 Android 网页中输入焦点的zoom

如何重新启用 event.preventDefault?

jQuery .live() 和 .on() 有什么区别

在完成前一个请求之前中止新的 AJAX 请求

jquery: $(window).scrollTop() 但没有 $(window).scrollBottom()

订单对象是否由指定的 jQuery Select 器返回?

IE8 和 JQuery 的 trim()

如何使用新的 JSON 数据手动更新数据表

jquery在cookie中保存json数据对象