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

Javascript:复制数组中的每个字符串值,javascript,arrays,Javascript,Arrays,在谷歌上搜索了一会儿,但找不到我的答案。我试图将一个3个字符的字符串转换为一个6个字符的字符串,其中3个字符中的每一个都是重复的 例如,3ff将变成33ffff 首先,我将字符串3ff转换为数组[“3”,“f”,“f”] 转换为数组后,我尝试映射数组和*2每个值,希望得到新数组[“33”,“ff”,“ff”] 但是,我得到了新的数组[6,NaN,NaN] 我知道3乘以2等于6,JS不知道如何乘以字符串,所以我们得到NaN 我认为在Python中,如果您尝试*2一个字符串值,它只会复制该值,就像e

在谷歌上搜索了一会儿,但找不到我的答案。我试图将一个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()
函数,如:

constduplicate=(v)=>v.split(“”).map(i=>i.repeat(2));

控制台日志(重复(“3ff”)
您可能希望使用
.repeat()
函数,如:

constduplicate=(v)=>v.split(“”).map(i=>i.repeat(2));
控制台日志(重复(“3ff”)这可以帮助您

const duplicate=函数(v){
return[…v].map(i=>i.toString()+i).join(“”);
};
console.log(复制(“3ff”))
这可以帮助您

const duplicate=函数(v){
return[…v].map(i=>i.toString()+i).join(“”);
};
log(重复(“3ff”)
试试这个

const duplicate = function(v) {
    newArray = v.split("");
    doubledArray = newArray.map(i => i + i);
    return doubledArray.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);

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

请像这样跟随

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

因为我可能是一个数字,所以您应该添加字符串。

您可以使用字符串concatation

const duplicate=函数(v){
return[…v].map((c)=>`${c}${c}`);
};

控制台日志(重复(“3ff”)您可以使用字符串浓缩

const duplicate=函数(v){
return[…v].map((c)=>`${c}${c}`);
};

控制台日志(重复(“3ff”)无需为此使用数组:


console.log('abc'。替换(//g,$&$&')
无需为此使用数组:


console.log('abc'。替换(//g,$&$&'))
回答!有很多方法可以做到这一点,但以下是我最容易理解的两种方法:

1.)使用
重复
,如下所示:

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

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

console.log(duplicate("3ff")); // Output: 33ffff
2.)使用
i+i
,如下所示:

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

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

console.log(duplicate("3ff")); // Output: 33ffff

谢谢大家的建议

回答!有很多方法可以做到这一点,但以下是我最容易理解的两种方法:

1.)使用
重复
,如下所示:

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

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

console.log(duplicate("3ff")); // Output: 33ffff
2.)使用
i+i
,如下所示:

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

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

console.log(duplicate("3ff")); // Output: 33ffff


谢谢大家的建议

不,这是不可能的。但是你可以只做
i=>i+i
instead@AltoJavaScript,其中
'1'+'1'=='11'
。Python和Ruby一样,对
*
具有特定于字符串的重写。JavaScript没有。拆分(“”).map(x=>x.repeat(2)).join(“”)
谢谢@Alto!试过这个,效果很好:)不,不可能成倍增长。但是你可以只做
i=>i+i
instead@AltoJavaScript,其中
'1'+'1'=='11'
。Python和Ruby一样,对
*
具有特定于字符串的重写。JavaScript没有。拆分(“”).map(x=>x.repeat(2)).join(“”)
谢谢@Alto!尝试了这个,效果很好:)string+string总是另一个string,但是如果
i
是数值,它就会被计算出来。啊,我明白了。我在看“3ff”
I
不是一个数字。split(“”)创建字符串数组字符串+字符串始终是另一个字符串,但是如果
i
是数值,它将被计算。啊,我明白了。我在看“3ff”
I
不是一个数字。split(“”)创建strings数组我以前从未听说过repeat函数。非常感谢。这非常有效。我以前从未听说过重复功能。非常感谢。这个很好用。哦,酷!我甚至不认为有一种不使用数组的方法可以做到这一点。这是一个很好的建议,我以后会记住的。哦,酷!我甚至不认为有一种不使用数组的方法可以做到这一点。这是一个很好的建议,我以后会记住的。啊,我知道你在那里做了什么。谢谢你的建议!做同一件事有这么多创造性的方法:)啊,我知道你在那里做了什么。谢谢你的建议!做同样的事情有这么多创造性的方法:)谢谢!这对我很有效。谢谢!这对我来说很有效,有道理!我永远不会想到这一点。看到每个人经历同一个问题的不同思维过程是非常有用的。这很有意义!我永远不会想到这一点。看到每个人经历同一个问题的不同思维过程是非常有用的。