簡體   English   中英

我想給我每個數組元素一個數字

[英]I want to give each of my array element a number

我有這段代碼,一個問題是它列出了單個數組元素而不是整個數組的數字。

我嘗試了其他方法,包括.map,但失敗了。

讓名字=“ Bilbo,Gandalf,Nazgul,Bob,Grim,Laniakea,Dzevid,Levan,George,What”;

let arr = names.split(', ');

for (let name of arr) {
for(let i =1; i < arr.length; i++)
  document.write( i + ` A message to ${name}.` + `<br>` ); // A message to Bilbo  (and other names)

}
  1. 使用此代碼的結果是:

     1 A message to Bilbo. 2 A message to Bilbo. 3 A message to Bilbo. 4 A message to Bilbo. 5 A message to Bilbo. 6 A message to Bilbo. 7 A message to Bilbo. 8 A message to Bilbo. 9 A message to Bilbo. 1 A message to Gandalf. 2 A message to Gandalf. 3 A message to Gandalf. 4 A message to Gandalf. 5 A message to Gandalf. 6 A message to Gandalf. 7 A message to Gandalf. 8 A message to Gandalf. 9 A message to Gandalf. 1 A message to Nazgul. 2 A message to Nazgul. 3 A message to Nazgul. 4 A message to Nazgul. 5 A message to Nazgul. 6 A message to Nazgul. 7 A message to Nazgul. 8 A message to Nazgul. 9 A message to Nazgul. 1 A message to Bob. 2 A message to Bob. 3 A message to Bob. 4 A message to Bob. 5 A message to Bob. 6 A message to Bob. 7 A message to Bob. 8 A message to Bob. 9 A message to Bob. 1 A message to Grim. 2 A message to Grim. 3 A message to Grim. 4 A message to Grim. 5 A message to Grim. 6 A message to Grim. 7 A message to Grim. 8 A message to Grim. 9 A message to Grim. 1 A message to Laniakea. 2 A message to Laniakea. 3 A message to Laniakea. 4 A message to Laniakea. 5 A message to Laniakea. 6 A message to Laniakea. 7 A message to Laniakea. 8 A message to Laniakea. 9 A message to Laniakea. 1 A message to Dzevid. 2 A message to Dzevid. 3 A message to Dzevid. 4 A message to Dzevid. 5 A message to Dzevid. 6 A message to Dzevid. 7 A message to Dzevid. 8 A message to Dzevid. 9 A message to Dzevid. 1 A message to Levan. 2 A message to Levan. 3 A message to Levan. 4 A message to Levan. 5 A message to Levan. 6 A message to Levan. 7 A message to Levan. 8 A message to Levan. 9 A message to Levan. 1 A message to George. 2 A message to George. 3 A message to George. 4 A message to George. 5 A message to George. 6 A message to George. 7 A message to George. 8 A message to George. 9 A message to George. 1 A message to What. 2 A message to What. 3 A message to What. 4 A message to What. 5 A message to What. 6 A message to What. 7 A message to What. 8 A message to What. 9 A message to What. 

我希望它以以下方式工作:

    1 A message to Bilbo
    2 A message to Gandalf
    3 A message to Nazgul
    4 A message to Bob
    5 A message to Grim
    6 A message to Laniakea
    7 A message to Dzevid
    8 A message to Levan
    9 A message to George
    10 A message to what

不確定您要達到的目標。 但是這是可以提供幫助的代碼。

let names = 'Bilbo, Gandalf, Nazgul, Bob, Grim, Laniakea, Dzevid, Levan, George, What';\
names = names.split(',');

names.forEach((name, index) => {
    document.write(`${index} A message to ${name.trim()}`);
})

在此示例中,我們首先將長字符串轉換為名稱數組。 然后使用簡單的forEach處理每個名稱。 請注意,我使用name.trim()刪除拆分后剩余的不必要空間。

實際上,不需要添加for (let name of arr) { .... } 您可以刪除該行。 除此之外,您需要從i = 0開始循環,因為數組從index 0開始,

let names = 'Bilbo, Gandalf, Nazgul, Bob, Grim, Laniakea, Dzevid, Levan, George, What';
let arr = names.split(', '); 

for(let i = 0; i < arr.length; i++){
  document.write( `${i+1}`  + ` A message to ${arr[i]}.` + `<br>` );
}

為什么要使用第二個循環? 像這樣設置一個計數器

let names = 'Bilbo, Gandalf, Nazgul, Bob, Grim, Laniakea, Dzevid, Levan, George, What';

let arr = names.split(', ');
let count = 1;
for (let name of arr) {
 document.write( count + ` A message to ${name}.` + `<br>` );
 count++;
}

要么

for (i = 1; i < arr.length; i++) { 
    document.write( i + ` A message to ${name}.` + `<br>` );
}

您可以使用地圖進行循環,並且不需要第二次循環,因為arr是一維數組

 let names = 'Bilbo, Gandalf, Nazgul, Bob, Grim, Laniakea, Dzevid, Levan, George, What'; let arr = names.split(', '); arr.map((d, i)=>{ document.write( i+1 + ` A message to ${d}.` + `<br>` ); // A message to Bilbo (and other names) }) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM