Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaScript在纯函数中的多行末尾填充_Javascript - Fatal编程技术网

使用JavaScript在纯函数中的多行末尾填充

使用JavaScript在纯函数中的多行末尾填充,javascript,Javascript,在javascript中,我必须在多行中使用padEnd()。 例如: 我的做法是: str.split(/\n/g).forEach((v)=>{v.padEnd(5,“”)}) 输出为: 未定义 有人能给我一个提示,我做错了什么,我还需要做什么?(请不要说出完整的答案) 您可以使用方法而不是forEach。最后,您可以对结果进行修改,以恢复字符串 map和forEach的主要区别在于: map()方法创建一个新数组,其结果是对调用数组中的每个元素调用提供的函数 forEach()方法为每

在javascript中,我必须在多行中使用padEnd()。 例如:

我的做法是: str.split(/\n/g).forEach((v)=>{v.padEnd(5,“”)})

输出为: 未定义

有人能给我一个提示,我做错了什么,我还需要做什么?(请不要说出完整的答案)

您可以使用方法而不是forEach。最后,您可以对结果进行修改,以恢复字符串

map和forEach的主要区别在于:

  • map()方法创建一个新数组,其结果是对调用数组中的每个元素调用提供的函数

  • forEach()方法为每个数组元素执行一次提供的函数

如果您稍微改变一下,您的方法就会起作用:

str = str.split(/\n/);
str.forEach((v, idx) => {str[idx] = v.padEnd(5, ".")});
                          ^^^^^^^^^^^^
var str='12ab\n121\n51';
str=str.split(/\n/).map((ele)=>ele.padEnd(5').join('\n');
log(““+str+”);
//不同的方法
变量str1='12ab\n121\n51';
str1=str1.split(/\n/);
str1.forEach((v,idx)=>{str1[idx]=v.padEnd(5,“.”});

控制台日志(str1)为什么使用forEach()无法获得所需的输出?答案已更新。当map工作并详细描述每个元素时,forEach在每个数组元素上循环。您可以在更新的代码片段中看到差异。+1-我认为如果您使用
作为填充字符,则
.map()
的演示会更清晰,就像您在
forEach
示例中所做的那样。此外,您不需要splitregex上的
/g
标志;split已经作用于整个字符串:
“一\nt两\ntree”.split(/\n/).map(s=>s.padEnd(7'.')).join('\n')
@StephenP您是对的。答案更新非常感谢
padEnd
返回一个新字符串,但您正在丢弃它。如果要使用纯函数,请不要使用forEach
str = str.split(/\n/);
str.forEach((v, idx) => {str[idx] = v.padEnd(5, ".")});
                          ^^^^^^^^^^^^