JS console.log方法打印两次值

时间:2017-11-27 01:43:39

标签: javascript

我有以下代码似乎工作得很好。

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

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

我在谷歌Chrome控制台中使用了代码但得到了#34;塞尔玛"两次。这是为什么?为什么不一次?

1 个答案:

答案 0 :(得分:1)

你正在看Selma两次,因为在循环的第一次迭代中你将它推送到sNames,然后你记录sNames,然后你再次在Yirma上记录它。所以你看到塞尔玛两次。将console.log移到循环之外。

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