당신이 할 대체 가진 개체를 가정하면, Array.map
var replace = {
'cat': 'tiger',
'dog': 'wolf',
'cow': 'diary',
};
var starter = ["cat", "dog", "cow"];
var final = starter.map(value => replace[value] || value);
console.log(final)
을 사용할 수 있습니다 , replace[value]
은 undefined
이므로 replace[value] || value
은 value
입니다.
은 어쨌든, for
이에 따라 benchmark.js에, 적어도 Node.js를에, 확실히 더 성능입니다 : 여기
Array.map x 2,818,799 ops/sec ±1.90% (76 runs sampled)
for array x 9,549,635 ops/sec ±1.86% (79 runs sampled)
Fastest is for array
내가
var Benchmark = require('benchmark');
var suite = new Benchmark.Suite;
suite
.add('Array.map', function() {
var replace = {
'cat': 'tiger',
'dog': 'wolf',
'cow': 'diary',
};
var starter = ["cat", "dog", "cow"];
var final = starter.map(value => replace[value] || value);
})
.add('for array', function() {
var replace = {
'cat': 'tiger',
'dog': 'wolf',
'cow': 'diary',
};
var starter = ["cat", "dog", "cow"];
var final = [];
for (var i = 0; i < starter.length; i++) {
final.push(replace[starter[i]] || starter[i]);
}
})
// add listeners
.on('cycle', function(event) {
console.log(String(event.target));
})
.on('complete', function() {
console.log('Fastest is ' + this.filter('fastest').map('name'));
})
// run async
.run({ 'async': true });
매우 깔끔한 시험에 사용되는 코드, 감사! – lost9123193
@ lost9123193 몇 가지 시도를했는데'for'가 적어도 구현 한 방법에 대해 더 많은 실적을 보였습니다 (업데이트 된 답변 참조). – rpadovani
아, 아마도 300 개 이상의 가능한 항목이 있지만 확장 성 측면에서는 그렇지 않습니다. 내가 for 루프에 충실 할 것을 제안 해 주시겠습니까? – lost9123193