我有以下代码似乎工作得很好。
代码的目的是将所有以 S (区分大小写)开头的名称打印到控制台。
let names = ['Selma', 'Yirma'];
let sNames = [];
names.forEach( (e)=>{
if (e.charAt(0) === 'S') {
sNames.push(e);
}
console.log(sNames);
});
我在谷歌Chrome控制台中使用了代码但得到了#34;塞尔玛"两次。这是为什么?为什么不一次?
答案 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);