2016-08-07 4 views
0

У меня есть массив, и я хочу, чтобы вставить «ZZ», если текущее значение массива (строка) содержит «ата», код должен заменить в конце «ата " слово.вставить строку в определенной позиции

var duplicatesArray = ["abıca","abrık","apşak","abbak","abu","aparma","apalisına","appak","aparmadutı","apşak","apışık","apşak","apışıklık","apışık","apalak","apılamak","apul","apul","apulamak","aparmak","at","arkasına","gelmek","ata","atabeg","at","eri","at","ağaç","at","oğlanı","at","akdarıcı","at","otayıcı","at","uşağı","at","oğlanı","at","oynağı","at","bırakmak","at","boynuna","düşmek","at","boynuna","düşmek","at","cıvlandurmak","at","çapmak","at","çapmak","at","depretmek","at","depmek","atı","doldurmak","at","segirtmek","ateş","evi","ateş","göyniigi","atışmak","ateşe","urmak","ateşe","nal","komak","at","şalmak","at","şalmak","at","tonı","at","kaşnısı","at","kaldırmak","at","kulağı","at","koparmals","at","koşmak","at","kulağı","götliği","atlaz","atlandurmak","atlandurmak","atlanmak","atlu","azuğı","atımı","yir","ata","atalar","atıcıduğı","aç","itmek","acıtğan","acıtmak","aç","dirilmek","acır","acırak","acışıklık","acışmak","aç","tutmak" 
 
]; 
 

 
var uniqueArray = duplicatesArray.filter(function(elem, pos) { 
 
    return duplicatesArray.indexOf(elem) == pos; 
 
}); 
 
\t 
 

 

 
for (var i = 0; i < uniqueArray.length; i++) { 
 
    var st = uniqueArray[i]; 
 
    if((st.endsWith("mak")==false) && (st.endsWith("mek")== false) && (st.length>3)) 
 
    { 
 
    \t 
 
    var b = "ata"; 
 
    var insert = "ZZ"; 
 
    
 
    var position = st.indexOf("b"); 
 
    \t st = st.slice(0, position) + insert + st.slice(position); 
 
    
 
    
 
    document.writeln(st); 
 
    document.write("<br>"); 
 
    
 
    
 
    } 
 
    
 

 
    }

+0

Что именно не так в вашей текущей версии? Не могли бы вы привести пример желаемого результата? – Arnauld

+2

Просьба уточнить вашу конкретную проблему или добавить дополнительные сведения, чтобы точно указать, что вам нужно. Как это написано в настоящее время, трудно точно сказать, что вы просите. –

+0

как я могу его отредактировать? нет кнопки изменения ... – pinug

ответ

0

Я, возможно, потребуется изменить этот ответ позже, когда некоторые детали были выяснены, но кажется, что вы должны использовать метод .map() на вашем uniqueArray.

Этот код будет проходить через каждое слово в списке и либо оставить его неизменным, либо применить замену, если выполняются все условия.

// using a shorter, already deduplicated list for sake of clarity 
 
var uniqueArray = [ 
 
    "abıca","gelmek","ata","atabeg","at","eri","yir","atalar","tutmak" 
 
]; 
 

 
var result = uniqueArray.map(function(word) { 
 
    return (
 
    !word.endsWith("mak") && 
 
    !word.endsWith("mek") && 
 
    word.length > 3 ? 
 
    word.replace(/ata/, "ataZZ") : word 
 
); 
 
}); 
 

 
console.log(result);

+0

большое спасибо – pinug

0

Я правильно или неправильно? :)

var initialArray = ["abıca","abrık","apşak","abbak","abu","aparma","apalisına","appak","aparmadutı","apşak","apışık","apşak","apışıklık","apışık","apalak","apılamak","apul","apul","apulamak","aparmak","at","arkasına","gelmek","ata","atabeg","at","eri","at","ağaç","at","oğlanı","at","akdarıcı","at","otayıcı","at","uşağı","at","oğlanı","at","oynağı","at","bırakmak","at","boynuna","düşmek","at","boynuna","düşmek","at","cıvlandurmak","at","çapmak","at","çapmak","at","depretmek","at","depmek","atı","doldurmak","at","segirtmek","ateş","evi","ateş","göyniigi","atışmak","ateşe","urmak","ateşe","nal","komak","at","şalmak","at","şalmak","at","tonı","at","kaşnısı","at","kaldırmak","at","kulağı","at","koparmals","at","koşmak","at","kulağı","götliği","atlaz","atlandurmak","atlandurmak","atlanmak","atlu","azuğı","atımı","yir","ata","atalar","atıcıduğı","aç","itmek","acıtğan","acıtmak","aç","dirilmek","acır","acırak","acışıklık","acışmak","aç","tutmak"]; 
var newArray = [] 
var regexp = /(ata)(.*)?/; 
for (var i = 0; i< initialArray.length; i += 1) { 
    newArray.push(initialArray[i].replace(regexp, "$1ZZ$2")) 
} 
console.log(newArray) 
// ... "gelmek", "ataZZ", "ataZZbeg" ... 
+0

Какая точка сопоставления произвольных символов после '' ata'', а затем сразу же помещается их обратно с '$ 2'? –

+0

точно мой друг, большое спасибо :) – pinug

+0

@torazaburo В массиве у нас были строки «ata» и «ata. *». Возможно, у меня был неправильный ответ немного –

Смежные вопросы