如何在数组中找到一个单词(在本例中为占位符,例如_ORGAN_
)并将其替换为元素的值?
sql = new Array();
$('#system').change(function(){
filter = " topography_index = _ORGAN_";
sql.push(filter);
});
在这种情况下,我希望将_ORGAN_
替换为$('#organ_menu').val();
答案 0 :(得分:3)
试试这个:
// 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/
答案 1 :(得分:1)
您可以通过迭代数组然后在找到匹配项时将值分配给它。
for (i = 0; i < sql.length; i++) {
if (sql[i] === "_ORGAN_") {
sql[i] = $('#organ_menu').val();
}
}
示例fiddle以便更好地理解。
答案 2 :(得分:1)
您可以简单地遍历数组并在每个元素上使用replace
var organValue = $('#organ_menu').val();
for (var i = 0; i < sql.length; i++) {
sql[i] = sql[i].replace("_ORGAN_", organValue);
}
答案 3 :(得分:1)
var regExp = new RegExp(organ, 'g');
$.each(sql, function(index, value) {
sql[index] = value.replace(regExp, 'test');
})
答案 4 :(得分:0)
我会尝试这样的事情,使用replace:
sql = new Array();
$('#system').change(function(){
filter = " topography_index = _ORGAN_".replace("_ORGAN_", $('#organ_menu').val(), "gi");
sql.push(filter);
});
答案 5 :(得分:0)
你可以这样做:
首先找到项目的索引:
var index=sql.indexOf("_ORGAN_");
然后在该索引处插入新项目并删除第一个:
sql.splice(index,1,newitem);
<强> splice 强>