【发布时间】:2021-05-11 04:21:39
【问题描述】:
我有一个这样的数组:
const allData =
[
['Alex ','foo@email',' ',],
[' ','goo@gmail, '232-333-2222'],
]
我想修剪数组中的所有值,例如,'Alex ' 变为 'Alex'。
我已经尝试了这些解决方案:
for (let data of allData.entries()) {
for (let content of data) {
content.trim();
}
}
allData.forEach((data) => {
data.forEach((content) => {
content.trim();
});
});
allData.map((data, index) => {
return data.map((content) => content.trim());
});
我也尝试过content = content.trim();。
但即使它确实修剪了值,它也不会将修改后的值保存在数组中。
我错过了什么?我希望 allData 包含修剪后的值。
【问题讨论】:
-
content.trim();本身只是一个没有变化的表达式,因为它没有被分配给任何东西。 -
您的代码会进行修剪,但不会将修剪后的值存储回数组。
-
let创建一个范围绑定实例。因此,在其他范围内分配它是徒劳的 -
trim不会修改原始字符串,因为它们是不可变的。您需要通过将内部 forEach 更改为:data.forEach((content, i) => data[i] = content.trim() )来替换数组的索引 -
而
content = content.trim()只是用修剪后的字符串重新分配本地参数content。它不会更新原始数组。
标签: javascript arrays