相关疑难解决方法(0)

如何将相同的元素添加到javascript数组n次

var fruits = [];
fruits.push("lemon", "lemon", "lemon", "lemon");
Run Code Online (Sandbox Code Playgroud)

而不是推动相同的元素,如何像这样写一次:

fruits.push("lemon" * 4 times)
Run Code Online (Sandbox Code Playgroud)

javascript arrays

9
推荐指数
1
解决办法
1604
查看次数

值得惯用的编程吗?一个ES6的例子

编程是关于如何实现任何代码的决策.根据这些决定,代码将或多或少地具有可读性,高效性,复杂性等.一个常见的决定也是或多或少地习惯,即使用特定语句或您的编程语言或范例.

作为概念验证,我在Javascript中开发了两个代码片段来分析性能.我们的目标是产生以下形式的字符串tagA|tagB|tagC,其中则数tagX是随机的,后缀A,B,C是随机的整数.而且,tagX不能重演.

第一种实现更惯用,而第二种更传统.接下来是每个代码片段:

成语:

performance.mark('A');

let tags = new Set(Array.from({length: tagCount}, () => Math.floor(Math.random() * 10)));
tags = Array.from(tags).map(x => `tag${x}`).join('|');

performance.mark('B');
Run Code Online (Sandbox Code Playgroud)

传统

performance.mark('C');

let tagset = new Set();
let tagstr = "";

for (let tag=0; tag<tagCount; tag++) {
    tagset.add(Math.floor(Math.random() * 10));
}

tagset.forEach((tag) => {
    tagstr += 'tag' + tag + '|'
});

tagstr = tagstr.slice(0, -1);

performance.mark('D');
Run Code Online (Sandbox Code Playgroud)

为了衡量性能,我使用了Performance Timing API

结果有点令人沮丧,至少对我而言.请注意传统方式如何比其他方式更有效.

Idiomatic: 0.436535
Traditional: 0.048177 …
Run Code Online (Sandbox Code Playgroud)

javascript performance idiomatic node.js ecmascript-6

6
推荐指数
1
解决办法
553
查看次数