我有一個函數使用underscore.js每個函數來調用列表中每個項目上的字符串替換。 (實際上是一對清單):爲什麼我的批量替換功能不起作用?
//Base object buckets = { counters: ["stats.REPLACE.msg_delivered", "stats.REPLACE.delivery_failed"], timers: ["stats.timers.REPLACE.msg_delivery_timer.median", "stats.timers.REPLACE.msg_delivery_timer.mean", "stats.timers.REPLACE.msg_delivery_timer.std", "stats.timers.REPLACE.msg_delivery_timer.upper"] }; //function in question _getNodeTargets = function(node) { var targets = buckets; _.each(targets.counters, function(bucket) { bucket = bucket.replace("REPLACE", node);}); _.each(targets.timers, function(bucket) { bucket = bucket.replace("REPLACE", node);}); return targets; }
我可以進入每個函數,看到字符串正在被替換並分配回桶。但是,當我點擊返回時,目標對象不變,REPLACE仍然在每個字符串中。
我毫不懷疑我正在做一些愚蠢的事情,但無論出於什麼原因我都看不到它。
在此先感謝!
由於bucket只是一個字符串,因此它不是一個引用,因此更改它並不會更改存儲在數組中的內容。您需要通過索引直接在數組上進行更改。 –