Javascript for循环只循环一次
我的问题是关于一个Javascript for循环只循环一次,javascript,loops,Javascript,Loops,我的问题是关于一个for循环,它似乎只循环了一次,我不知道为什么 我正在编写一个函数,将数组元素的最后一个字母与下一个数组元素的第一个字母进行比较 我的测试输入是数组:[“Buddy Bear”、“Romeo”、“Olive”]。这些都符合条件(最后一个字母与下一个字母的第一个字母匹配),并且应该被推送到一个数组中 我已经阅读了所有关于这个主题的帖子,但找不到一篇似乎适合我的问题。我知道我错过了一些简单的东西,只是看不见而已 小提琴: 函数有效名(数组){ var lower=[] for(设i
for
循环,它似乎只循环了一次,我不知道为什么
我正在编写一个函数,将数组元素的最后一个字母与下一个数组元素的第一个字母进行比较
我的测试输入是数组:[“Buddy Bear”、“Romeo”、“Olive”]。这些都符合条件(最后一个字母与下一个字母的第一个字母匹配),并且应该被推送到一个数组中 我已经阅读了所有关于这个主题的帖子,但找不到一篇似乎适合我的问题。我知道我错过了一些简单的东西,只是看不见而已 小提琴:
函数有效名(数组){
var lower=[]
for(设i=0;i
我放了一个计数器来确保代码在循环,它返回1,使我得出结论,它只循环了一次。我也尝试过几次重新配置代码,但我不确定哪里出了问题。var array=[“heehjko”、“oient”、“ana”、“inm”、“mii”、“dgdfg”、“Dove”]
var array = ["heehjko", "oient", "ana", "inm", "mii", "dgdgdfg", "Dove"]
var lower = []
for (let i = 0; i < array.length; i++) {
lower.push(array[i].toLowerCase());
}
console.log(lower)
var testA = []
var count = 0;
for (var i = 0; i < lower.length; i++) {
var j = 1;
console.log(lower[i].charAt(lower[i].length - 1))
console.log(lower[i + 1])
if (lower[i + 1] != undefined) {
if (lower[i].charAt(lower[i].length - 1) === lower[i + 1].charAt(0)) {
testA.push(lower[i + 1]);
}
}
}
console.log(testA)
var lower=[]
for(设i=0;i
var数组=[“heehjko”、“oient”、“ana”、“inm”、“mii”、“dgdfg”、“Dove”]
var lower=[]
for(设i=0;i
根据其他对话,更新的要求似乎是:
给定一个名称数组,例如[“Bob”、“Jane”、…],遍历该数组,比较元素n的最后一个字母与元素n+1的第一个字母。如果它们匹配(不区分大小写),则应将这两个元素添加到第二个“结果数组”。尽管结果数组中可能存在重复值,但不应将任何元素(按索引)添加到结果数组中两次
用例A:
给定:[“巴迪熊”、“罗密欧”、“橄榄”]
期待:[“巴迪熊”、“罗密欧”、“橄榄”]
用例B:
给定:[“简”、“鲍勃”、“鲍勃”、“鲍勃”]
期望值:[“鲍勃”、“鲍勃”、“鲍勃”]
函数有效名称(名称列表){
功能减速机(附件、项目、索引、arr){
var nextIndex=指数+1;
var nextItem=arr[nextIndex];
如果(!nextItem){return acc;}
var charA=item.charAt(item.length-1).toLowerCase();
var charB=nextItem.charAt(0.toLowerCase();
如果(charA!==charB){return acc;}
// -------------------
//将“项目”添加到累加器(如果尚未添加)
//在上一条评论中添加为“nextItem”。
// -------------------
if(acc[acc.length-1]!==index){acc.push(index);}
// -------------------
// -------------------
//将“nextItem”添加到累加器中。
// -------------------
acc.push(下一个索引);
// -------------------
返回acc;
}
// -------------------
//将索引数组转换为值数组
// -------------------
函数_映射器(项){返回名称列表[项];}
// -------------------
var result=nameList.reduce(_reducer,[]).map(_mapper);
返回结果;
}
var nameList=[“巴迪熊”、“罗密欧”、“奥利弗”];
var结果=有效名称(名称列表);
console.log(“案例A:”);
console.log(“给定:”);
控制台日志(名称列表);
console.log(“Result Count=“+Result.length”);
控制台日志(结果);
控制台日志(“”);
控制台日志(“”);
姓名列表=[“简”、“鲍勃”、“鲍勃”、“鲍勃”];
结果=有效名称(名称列表);
console.log(“案例B:”);
console.log(“给定:”);
控制台日志(名称列表);
console.log(“Result Count=“+Result.length”);
控制台日志(结果)代码>根据其他对话,更新的要求似乎是:
给定一个名称数组,例如[“Bob”、“Jane”、…],遍历该数组,比较元素n的最后一个字母与元素n+1的第一个字母。如果它们匹配(不区分大小写),则应将这两个元素添加到第二个“结果数组”。尽管结果数组中可能存在重复值,但不应将任何元素(按索引)添加到结果数组中两次
用例A:
给定:[“巴迪熊”、“罗密欧”、“橄榄”]
期待:[“巴迪熊”、“罗密欧”、“橄榄”]
用例B:
给定:[“简”、“鲍勃”、“鲍勃”、“鲍勃”]
期望值:[“鲍勃”、“鲍勃”、“鲍勃”]
函数有效名称(名称列表){
功能减速机(附件、项目、索引、arr){
var nextIndex=指数+1;
var nextItem=arr[nextIndex];
如果(!nextItem){return acc;}
var charA=item.charAt(item.length-1).toLowerCase();
var charB=nextItem.charAt(0.toLowerCase();
如果(charA!==charB){return acc;}
// -------------------
//将“项目”添加到累加器(如果尚未添加)
//在上一条评论中添加为“nextItem
var array = ["heehjko", "oient", "ana", "inm", "mii", "dgdgdfg", "Dove"]
var lower = []
for (let i = 0; i < array.length; i++) {
lower.push(array[i].toLowerCase());
}
console.log(lower)
var testA = []
var count = 0;
for (var i = 0; i < lower.length; i++) {
var j = 1;
console.log(lower[i].charAt(lower[i].length - 1))
console.log(lower[i + 1])
if (lower[i + 1] != undefined) {
if (lower[i].charAt(lower[i].length - 1) === lower[i + 1].charAt(0)) {
testA.push(lower[i + 1]);
}
}
}
console.log(testA)
var lower = []
var lower = [];
for(var i = 0; i < lower.length; i++) {
...
arr_result.push(count);
}
return arr_result;
if(lower[i].charAt(lower[i].length-1) === lower[j].charAt(0))
for(var i = 0; i < lower.length; i++) {
var j = 1;
if(lower[i].charAt(lower[i].length-1) === lower[j].charAt(0)){
testA.push(lower[i]);
j = j + 1;
}
count = count + 1;
}
return count;
function validName(array){
var result=[],lower=[],count=0,len=0;
for(i in array){
lower.push(array[i].toLowerCase());
}
for(j in lower){
i=j;i++;if(j==lower.length-1){break;}
len=lower[j].length-1;
var u=lower[j].charAt(len);
var l=lower[i].charAt(0);
if(u==l){
result.push(lower[j]);
count++;
}
}
return result;
}
alert(validName(["Buddy Bear","Romeo", "Olive"]));