2014-03-05 2 views
0

배열에서 단어 (이 경우 자리 표시 자, 예 : _ORGAN_)를 찾아 요소의 값으로 대체하려면 어떻게해야합니까? 이 경우자바 스크립트 - 배열의 단어 찾기 및 바꾸기

sql = new Array(); 

$('#system').change(function(){ 
    filter = " topography_index = _ORGAN_";  
    sql.push(filter); 
}); 

나는 replace를 사용하여, $('#organ_menu').val();

+0

것은 당신이 값이'이다 배열 요소에 바꾸시겠습니까 _ORGAN_'? – tnanoba

답변

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/

+0

훌륭한 작품 ... 많은 감사합니다! – IlludiumPu36

+0

작업 스 니펫 –

0

나는 이런 식으로 뭔가를 시도 할 것으로 _ORGAN_을 대체 할 것 :

sql = new Array(); 

$('#system').change(function(){ 
    filter = " topography_index = _ORGAN_".replace("_ORGAN_", $('#organ_menu').val(), "gi"); 
    sql.push(filter); 
}); 
1

당신은 간단하게 할 수 있습니다 다음 배열을 반복에 의해 일치하는 것을 찾으면 값을 할당하십시오.

for (i = 0; i < sql.length; i++) { 
    if (sql[i] === "_ORGAN_") { 
     sql[i] = $('#organ_menu').val(); 
    } 
} 

예 : fiddle.

0

이 작업을 수행 할 수 있습니다

var index=sql.indexOf("_ORGAN_"); 

그런 다음 해당 인덱스에 새 항목을 삽입하고 제거 할 첫 번째 :

sql.splice(index,1,newitem); 

첫째 항목의 인덱스를 찾을 수 splice

1

단순히 각 요소에 대해 대체 배열을 반복하고 사용할 수 있습니다

var organValue = $('#organ_menu').val(); 

for (var i = 0; i < sql.length; i++) { 
    sql[i] = sql[i].replace("_ORGAN_", organValue); 
} 
+0

이 작업은 정상적으로 작동하지만 _ORGAN_ – IlludiumPu36

1
var regExp = new RegExp(organ, 'g');  
$.each(sql, function(index, value) { 
    sql[index] = value.replace(regExp, 'test'); 
}) 
+0

의 첫 번째 인스턴스 만 바꿉니다. 여러 인스턴스를 바꿀 때 훌륭하게 작동하므로 솔루션에서 몇 가지 유연성을 제공합니다. 아마도이 기능을 사용할 것입니다 ... 많은 감사합니다! – IlludiumPu36

관련 문제