尝试了一段时间的谷歌搜索,但找不到答案。我正在尝试将一个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
谢谢大家的建议!