我有问题,我需要从输入中生成数组,但每个输入char需要在数组中加倍。例如,如果输入是ABC数组需要导致AABBCC。 所以我最终得到了这段代码
if (hex.length < 6) {
hex.splice(hex.indexOf(hex[i]) + 1, 0, hex[i]);
}
如果输入为ABC,则输出AABBCC
如果输入是AAB,则输出AAAABB
但如果第一个和最后一个字符与ABA相同,它将最终成为AAABBA。那是为什么?
答案 0 :(得分:1)
这是因为indexOf()
返回指定值的第一次出现。您可以改为使用reduce()
方法:
const double = arr => arr.reduce((acc, next) => [...acc, next, next], []);
console.log(double(Array.from('ABA')).join(''));
答案 1 :(得分:0)
您可能想尝试indexOf
,而不是使用只返回第一个索引的array.Map
显式迭代。
var a = "abc";
var b = "aba";
var c = "foo bar mañana mañana"
function duplicate(phrase) {
return Array.from(phrase).map(function(elem) {
return elem + elem;
}).join("");
}
var aAns = duplicate(a);
var bAns = duplicate(b);
var cAns = duplicate(c);
console.log(aAns);
console.log(bAns);
console.log(cAns);
&#13;
修改强>
感谢Michał Perłakowski的Unicode标注!
答案 2 :(得分:0)
这是使用mysql -u root -h "IP of remote localhost"
的绝佳机会:
.map()