如何在數組中找到一個單詞(在本例中爲佔位符,例如_ORGAN_
)並將其替換爲元素的值?JavaScript - 查找並替換數組中的單詞
sql = new Array();
$('#system').change(function(){
filter = " topography_index = _ORGAN_";
sql.push(filter);
});
在這種情況下,我想用$('#organ_menu').val();
如何在數組中找到一個單詞(在本例中爲佔位符,例如_ORGAN_
)並將其替換爲元素的值?JavaScript - 查找並替換數組中的單詞
sql = new Array();
$('#system').change(function(){
filter = " topography_index = _ORGAN_";
sql.push(filter);
});
在這種情況下,我想用$('#organ_menu').val();
試試這個:
// sql array
var sql = ['organ not found', '_ORGAN_ is here'];
var val_to_replace = '_ORGAN_';
var replace_with = 'heart'; // temp value - change it with $('#organ_menu').val()
$.each(sql, function (key, val) {
// search for value and replace it
sql[key] = val.replace(val_to_replace, replace_with);
})
console.log(sql)
的jsfiddle:http://jsfiddle.net/d8sZT/
非常感謝! – IlludiumPu36
工作片段 –
我會嘗試這樣的事情來替代_ORGAN_
,使用replace:
sql = new Array();
$('#system').change(function(){
filter = " topography_index = _ORGAN_".replace("_ORGAN_", $('#organ_menu').val(), "gi");
sql.push(filter);
});
你可以簡單地做是通過遍歷數組,然後一旦找到匹配值,就將值賦給它。
for (i = 0; i < sql.length; i++) {
if (sql[i] === "_ORGAN_") {
sql[i] = $('#organ_menu').val();
}
}
例子fiddle爲了更好的理解。
你可以這樣做:
首先找到該項目的索引:
var index=sql.indexOf("_ORGAN_");
然後該索引處插入新的項目,並刪除第一個:
sql.splice(index,1,newitem);
你可以簡單地迭代這個數組並使用替換每個元素
var organValue = $('#organ_menu').val();
for (var i = 0; i < sql.length; i++) {
sql[i] = sql[i].replace("_ORGAN_", organValue);
}
這工作正常,但只取代_ORGAN_的第一個實例 – IlludiumPu36
var regExp = new RegExp(organ, 'g');
$.each(sql, function(index, value) {
sql[index] = value.replace(regExp, 'test');
})
這個工程很好,當更換多個實例時,所以你的解決方案給了我一些靈活性......我可能會使用這個......非常感謝! – IlludiumPu36
你想在哪個值'數組元素來取代_ORGAN_'? – tnanoba