我正在尝试创建一个可以返回带有单词字符的数组的函数。它需要在数组中保存一些双字母。我有一个包含双字母的数组。我有一个单词列表(somethimes大)。现在的问题是,它将第一个字母保存2次,并将字母中的双字节保存为字母。该函数本身运行在一个从json对象获取单词的循环中。功能是以我能想到的方式完成的,但如果有更好的方法(显然),请告诉我如何。更改字符串中的双字母
功能:字母
var word = 'voorheen';
var doubles = ['aa', 'oo', 'ee', 'ie', 'oe', 'eu', 'uu', 'au', 'ou', 'ui', 'ng', 'ch', 'ij'];
var letters = getLetters(word, doubles);
console.log(letters);
function getLetters(word, doubles) {
var letters = [];
var specials = [];
var indexes = [];
for(var s=0;s<doubles.length;s++) {
if(word.indexOf(doubles[s]) != -1) {
specials.push(doubles[s]);
indexes.push(word.indexOf(doubles[s]));
console.log('specials: ' + specials);
console.log('indexes: ' + indexes);
}
}
for(var i=0;i<word.length;i++) {
if(specials.length>0) {
for(var j=0;j<specials.length;j++) {
if(i<indexes[j]) {
letters.push(word[i]);
console.log('i: ' + i);
console.log('j: ' + j);
console.log('letter: ' + word[i]);
}
if(i==indexes[j]) {
letters.push(specials[j]);
console.log('i: ' + i);
console.log('j: ' + j);
console.log('letter: ' + word[i]);
}
if(i>indexes[j] + specials[j].length) {
letters.push(word[i]);
console.log('i: ' + i);
console.log('j: ' + j);
console.log('letter: ' + word[i]);
}
}
}
else {
letters.push(word[i]);
}
}
return letters;
}
铬日志输出:
["v", "v", "oo", "o", "o", "r", "h", "h", "e", "ee", "e", "n"]
虽然我想:
["v", "oo", "r", "h", "ee", "n"]
为什么jQuery的标签? – Xotic750
什么是输入和你想要什么输出? –
因为我没有问题,使用jquery,如果它更容易创建一个功能,做我所需要的。 – Zeebats