簡體   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