gpt4 book ai didi

javascript - Javascript 中查找和替换数组中字符串的改进方法

转载 作者:行者123 更新时间:2023-11-28 15:06:49 25 4
gpt4 key购买 nike

我有以下数组:

["cat", "dog", "cow"] 

我想用新字符串替换每个值。

["tiger", "wolf", "diary"]

目前,我正在遍历 for 循环并检查是否存在需要更改名称的字符串,如果存在,则将其替换为新值。虽然 for 循环有效,但我想知道是否有更好的方法来做到这一点。

最佳答案

假设您有一个需要替换的对象,您可以使用 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 对象中,则 replace[value]undefined,因此 replace[value] | | valuevalue 本身的 evaluet。

无论如何,根据 benchmark.js,for 的性能肯定更高,至少在 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 });

关于javascript - Javascript 中查找和替换数组中字符串的改进方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38578605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com