jQuery创建新的Array,加倍旧的

时间:2017-06-05 18:56:13

标签: javascript jquery arrays sorting

我有问题,我需要从输入中生成数组,但每个输入char需要在数组中加倍。例如,如果输入是ABC数组需要导致AABBCC。 所以我最终得到了这段代码

if (hex.length < 6) {
    hex.splice(hex.indexOf(hex[i]) + 1, 0, hex[i]);
}

如果输入为ABC,则输出AABBCC
如果输入是AAB,则输出AAAABB

但如果第一个和最后一个字符与ABA相同,它将最终成为AAABBA。那是为什么?

3 个答案:

答案 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显式迭代。

&#13;
&#13;
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;
&#13;
&#13;

修改

感谢Michał Perłakowski的Unicode标注!

答案 2 :(得分:0)

这是使用mysql -u root -h "IP of remote localhost" 的绝佳机会:

.map()