Javascript:重复数组中的每个字符串值



尝试了一段时间的谷歌搜索,但找不到答案。我正在尝试将一个3个字符的字符串转换为6个字符的串,其中3个字符中的每一个都是重复的。

例如,3ff将变为33ffff

首先,我将字符串3ff转换为数组["3", "f", "f"]

转换成数组后,我尝试通过数组和*2每个值进行映射,希望得到新的数组["33", "ff", "ff"]

但是,我得到了新的数组[6, NaN, NaN]

我知道3乘2等于6,JS不知道如何乘字符串,所以我们得到了NaN。

我认为在Python中,如果你尝试*2一个字符串值,它只会复制这个值,就像eggs会变成eggseggs一样。JS中不是这样吗?

这是我的代码:

const duplicate = function(v) {
newArray = v.split("");
doubledArray = newArray.map(i => i*2);
return doubledArray
};
console.log(duplicate("3ff")) // Output: [6, NaN, NaN]

有没有一种方法可以在JavaScript中复制数组的字符串值,而不仅仅是数值?

您可能想要使用.repeat()函数,如:

const duplicate = (v) => v.split("").map(i => i.repeat(2));
console.log(duplicate("3ff"));

旧符号:

const duplicate = function(v) {
newArray = v.split("");
doubledArray = newArray.map(i => i.repeat(2));
return doubledArray
};
console.log(duplicate("3ff"));

无需为此使用数组:

console.log('abc'.replace(/./g, '$&$&'))

在regexp语言中,点的意思是";任何符号";并且CCD_ 12=";找到的符号";

这可以帮助您

const duplicate = function(v) {
return [...v].map( i => i.toString() + i).join('');
};
console.log(duplicate("3ff"))

试试这个

const duplicate = function(v) {
newArray = v.split("");
doubledArray = newArray.map(i => i + i);
return doubledArray.join("")
};
console.log(duplicate("3ff"));

请按照以下方式操作。

doubledArray = newArray.map(i => i+''+i);

因为我可能是一个数字,所以你们应该加上字符串。

您可以使用字符串模板文字来使用字符串连接。

const duplicate = function (v) {
return [...v].map((c) => `${c}${c}`);
};
console.log(duplicate("3ff"));

已回答!有很多方法可以做到这一点,但这里有两种对我来说最简单的理解:

1.(使用repeat,如下所示:

const duplicate = function(v) {
newArray = v.split("");
doubledArray = newArray.map(i => i.repeat(2));
return doubledArray.join("")
};
console.log(duplicate("3ff")); // Output: 33ffff

2.(使用i + i,如下所示:

const duplicate = function(v) {
newArray = v.split("");
doubledArray = newArray.map(i => i + i);
return doubledArray.join("")
};
console.log(duplicate("3ff")); // Output: 33ffff

谢谢大家的建议!

最新更新