javascript - 逐字母循环遍历名称数组
问题描述
let names = ['pete', 'dave', 'sara', 'toni', 'michael'];
let name = "";
let names2 = [];
// names[i][j]
console.log (names);
console.log (names2);
我必须找到一种方法来逐字母循环遍历 names 数组,并使 names2 的输出成为逐字母处理的同一个数组。
到目前为止,我有这个:
for (let i = 0; i < names.length; i++) {
for (let j = 0; j < names[i].length; j++) {
name += names[i][j];
names2 += name;
name = "";
console.log (names);
console.log (names2);
输出应该是:
['pete', 'dave', 'sara', 'toni', 'michael']
['pete', 'dave', 'sara', 'toni', 'michael']
(第二个一个字母一个字母地写下来,第一个就是我们一开始设置的普通数组)
但我得到的是:
['pete', 'dave', 'sara', 'toni', 'michael']
petedavesaratonimichael
谁能帮我?
let names = ['pete', 'dave', 'sara', 'toni', 'michael'];
let name = "";
let names2 = [];
for (let i = 0; i < names.length; i++) {
for (let j = 0; j < names[i].length; j++) {
name += names[i][j];
names2 += name;
name = "";
}
}
console.log (names);
console.log (names2);
解决方案
我不确定这个练习是关于什么的,但这里有一个解决方案(没有循环但有Array.map
and Array.reduce
)。
let names = ['pete', 'dave', 'sara', 'toni', 'michael'];
const convert = (names) => names.map(name => Array.from(name).reduce((result, c) => `${result}${c}`, ''))
console.log(names);
console.log(convert(names));
在您的解决方案中,您可能正在使用重载+=
运算符将数组强制转换为字符串。您应该在添加元素时使用Array.push
or 。Array.concat
推荐阅读
- python - pymodm 无法识别模型的对象
- python - 如何在熊猫数据框中将 Decimal128 转换为十进制
- python - Python 返回函数到 JSON
- java - crawler4j 遵循什么步骤来获取数据?
- php - PHP - 这是获取 html 内容的最快和最好的方法
- excel - 将列与单元格进行比较并返回该单元格前面的值
- javascript - 从java控制器返回值
- javascript - Typescript 函数联合类型缺少调用签名
- java - 在 docker swarm + fluentd 上记录 java 异常
- c - C - 动态整数数组错误(代码:块/Visual Studio)