如何在JavaScript中用回调函数结果填充数组?

时间:2019-01-24 08:22:44

标签: javascript lodash

假设我有这样的东西:

window.dayNames = function () {
 let names = [];
 for (let i = 0; i < 7; i++) {
    names.push(moment().day(i).format('dddd'));
 }
 return names;
}

是否可以使用js来简化它? 例如我在看lodash lib _.fill

我想知道是否存在类似的东西

 _.fill(0,7, (i) => {return moment().day(i).format('dddd');}); 

2 个答案:

答案 0 :(得分:1)

您可以使用Array.from

Array.from({length:7}, (_, i) => moment().day(i).format('dddd'))
  

Array.from()具有可选参数mapFn,该参数可让您   在数组的每个元素上执行map函数

答案 1 :(得分:1)

您可以使用lodash的_.times()

const dayNames = (n = 7) => _.times(n, i => moment().day(i).format('dddd'));

const result = dayNames();

console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.23.0/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>