繁体   English   中英

JS console.log方法将值打印两次

[英]JS console.log method prints value twice

我有以下代码,似乎基本上可以正常工作。

该代码的目的是将所有以S (区分大小写)开头的名称打印到控制台。

let names = ['Selma', 'Yirma'];
let sNames = [];
names.forEach( (e)=>{
    if (e.charAt(0) === 'S') {
        sNames.push(e);
    }
        console.log(sNames);
});

我在Google chrome控制台中使用了该代码,但是两次出现“ Selma”。 这是为什么? 为什么不只是一次?

您会看到Selma两次,因为在循环的第一次迭代中,您将其推入sNames,然后您记录了sNames,然后再次将其记录在Yirma上。 所以您两次见到Selma。 将console.log移出循环。

let names = ['Selma', 'Yirma'];
let sNames = [];
names.forEach( (e)=>{
    if (e.charAt(0) === 'S') {
        sNames.push(e);
    }
});
console.log(sNames);

因为您的console.log()位于for循环内,所以将console.log()移至循环外。

  let names = ['Selma', 'Yirma']; let sNames = []; names.forEach( (e)=>{ if (e.charAt(0) === 'S') { sNames.push(e); } }); console.log(sNames); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM