2016-08-07 100 views
0

我有一個數組插入一個字符串,我想插入「ZZ」如果當前數組值(字符串)包含「ATA」,代碼應在結束更換「ATA 「字。在特定位置

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。*」字符串。 也許我錯了回答有點 –