簡體   English   中英

如何在不使用數組 [鍵] 的情況下訪問數組值?

[英]How can I access an array value without using array[key]?

我正在編寫一個簡單的代碼來獲取數組中的值。 我正在使用array[key]for循環中獲取存儲在該數組中的值。

 var array = ["Foo", "Bar"]; function getValue() { for (var key = 0; key < array.length; key++) { console.log(array[value]); } }

這種方法很簡單而且效果很好,但是,我讀到這可能會導致安全問題( 方括號符號的危險),並且 ESlint 不適合它,拋出這個錯誤:

通用 Object 注入接收器(安全/檢測對象注入)

將 variable[key] 檢測為左手或右手賦值操作數。 ESLint 參考

如何在不使用此方法的情況下訪問數組的值?

我已經閱讀了相關問題: 為什么用變量調用數組索引是不好的做法? 由於這個問題似乎難以概括,我決定提出一個新的規范問題。

有兩種方法可以做到這一點。

首先 :您可以使用for..of循環。 for..of不使用方括號表示法,也不直接給出索引。

for(let element of list)
{
    console.log(element);
}

第二 :另一種方式是@Rajesh提到的:ForEach。

list.ForEach(element => console.log(element));

使用Array.prototype.at

['a','b','c','d','e'].at(2); // 'c'

JavaScript提供了許多方法來幫助您遍歷數組以進行映射,過濾和僅迭代數組。 看其中的幾個:

  1. forEach()方法

     let arr = [1,2,3,4,10]; arr.forEach((item, index) => console.log(item)) //1,2,3,4,10 

    此方法還允許您獲取項目的索引。

  2. 循環

     for(item of arr) { console.log(item) //1,2,3,4,10 } 

    ES6中引入了此新功能,建議對數組進行迭代。

    如果要操作數組,可以使用以下方法,該方法還可以遍歷數組:

  3. 過濾()

     arr.filter((item, index)=> item > 5) // Return new array [10] 
  4. 地圖()

     arr.map((item, index)=> item*2) // Return new array [2,4,6,8,20] 

暫無
暫無

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

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