【发布时间】:2019-01-10 23:40:54
【问题描述】:
嘿,我有一个小问题。所以基本上我将字符串作为参数传递给函数,然后将其转换为数组,我试图将生成的数组元素相互比较,如果它们相等,它应该返回“)”否则“(”,但有比较元素时出现问题并且值错误。也许有人可以帮助我。
function duplicateEncode(word) {
let splitString = word.split("");
let newArr = splitString.map((val, index, arr) => {
for (let i = 0; i < splitString.length; i++) {
if (val === arr[i]) {
return ')';
} else {
return '(';
}
}
});
return newArr.join('');
}
【问题讨论】:
-
你能把这个问题说得更清楚吗?
-
循环有什么问题?假设我们有一个字符串“堆栈”,当函数启动时,我将它作为参数传递给函数,最终结果应该看起来像“(((((”),因为每个字母都是不同的,但现在它返回“)((( ("
-
假设字符串是“hello peeps”,它返回“((()(((())((”?在“hello”中,第一个“l”是(但第二个“l " 是) 对吗?
-
您拆分字符串并映射元素,第一个元素将始终匹配并返回
)作为 for 循环的索引,并且映射迭代是相同的。但它会为所有其他迭代返回(,因为您总是将索引0处的元素与其他索引进行比较。所以方法的输出总是)((((((...... -
谢谢,我就是这样
标签: javascript arrays loops dictionary compare