我对Javascript相当陌生,并注意到在教程中,人们使用几种不同的方法来处理输出。
让我们使用一个简单的例子,假设我们希望在一个学生名称数组中console.log()每个名称,每一行一个名称。
方法#1: console.log()每个单独的迭代
var names = ["Alan", "Barbara", "Charlie", "Denise"]
for (var i = 0; i < names.length; i++){
console.log(names[i]);
}方法#2:为console.log()每个单独的迭代定义并使用一个输出变量
var names = ["Alan", "Barbara", "Charlie", "Denise"]
var output = "";
for (var i = 0; i < names.length; i++){
output = names[i];
console.log(output);
}方法#3:定义并使用一个输出变量,但在整个for循环完成后,将每个名称以行中断方式存储到输出变量中,然后console.log()输出
var names = ["Alan", "Barbara", "Charlie", "Denise"]
var output = "";
for (var i = 0; i < names.length; i++){
output += names[i] + "\n";
}
console.log(output);所有这些工作在我的浏览器,但我肯定有一些微妙的差异,我忽略了。我希望得到一些关于最佳实践的指导,并讨论这些方法中哪一种更可取,无论是在一般情况下还是在特定情况下,以及哪些方法可以避免或倾向于/致力于肌肉记忆。谢谢!
发布于 2019-08-09 11:40:24
推荐的做法是尽量避免编写自己的循环。
您不需要对数组做任何事情,因为您也可以将复杂的对象输出到控制台:
console.log(["Alan", "Barbara", "Charlie", "Denise"]);但是,如果需要将每个名称放在新行中,请使用Array.join,如下所示:
var names = ["Alan", "Barbara", "Charlie", "Denise"];
console.log(names.join("\n"));如果您处理的是一个对象数组,那么可以在Array.map之前调用join,这样就可以将它们转换为字符串。
如果您希望保持代码的结构与您在问题中提供的类似,则可以使用forEach
var names = ["Alan", "Barbara", "Charlie", "Denise"];
names.forEach(function(name){
console.log(name);
});https://stackoverflow.com/questions/57429227
复制相似问题