我正在学习lodash并查看了大量的文档,并为此寻找解决方案:
const r = 'ABCD';
const s = ['1', '2', '3', '4'];
我希望最终的返回值为:
['A1', 'B2', 'C3', 'D4']
我主要担心的是表现。它必须快!对于~56k的列表,我所需要的大约需要2500-3000毫秒。
更新: 我做的是:
[`${r[0]}${s[0]}`, `${r[1]}${s[1]}`, `${r[2]}${s[2]}`, `${r[3]}${s[3]}`]
感谢您的建议。我尝试了_.map和原生地图,我对它们的速度有多惊讶...
字符串模板耗时2.5秒
lodash mapping r耗时4.5s
lodash mapping s花了13s
原生地图r需要5s
原生地图花了15秒
我真的希望我能把它降到1s ..
答案 0 :(得分:2)
您可以使用原生方法Array#map
。
var r = 'ABCD',
s = ['1', '2', '3', '4'],
mapped = s.map((a, i) => r[i] + a);
console.log(mapped);
答案 1 :(得分:0)
我更喜欢原生的js技术。
var r = 'ABCD',
s = ['1', '2', '3', '4'],
var mapped = [];
for(var i = 0 ; i<s.length; i++) {
mapped.push('' + r[i] + s[i]);
}
console.log(mapped);
或者您可以使用js map函数。
var r = 'ABCD',
s = ['1', '2', '3', '4'],
mapped = s.map((a, i) => r[i] + a);
console.log(mapped);