繁体   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