【问题标题】:Using array methods changes my array contents使用数组方法更改我的数组内容
【发布时间】:2020-07-25 03:18:39
【问题描述】:

在我的角度代码中,我使用array.some() 来查找该元素是否存在于数组中,但是在运行array.some() 时会更改原始数组内容。 array.some() 改变了数组内容,这完全出乎意料。

let temp = this.mainArray.find(val => val.id == this.myId);

在我的例子中,mainArray 的内容会在上述代码执行时发生变化

【问题讨论】:

  • 您能分享一下您是如何使用.some()
  • 回调中的代码正在更改数组内容,而不是array.some
  • 您需要显示您声称正在更改数组的.some() 代码,并请提供可重现的案例。您显示的 .find() 代码本身不会更改数组。

标签: javascript angular ecmascript-6


【解决方案1】:

由于 Some 返回一个布尔值,其结果通常用于条件语句。

mainarray =[1,2,3,4]

const isCheckArrayValueContain = mainarray
  .some(item => item == 5);
  

console.log(isCheckArrayValueContain);

Some 的第一个参数是公开这些参数的回调函数:

  • 值 -->(当前元素)
  • index -->(元素的索引 - 有时与过滤器一起使用)
  • array -->(我们正在循环的数组——很少使用)

在函数体内我们需要返回一个表达式 这将评估为布尔值(真或假)

Some 的第二个参数 thisArg 允许更改 this 上下文

【讨论】:

    猜你喜欢
    • 2014-03-20
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 2014-03-07
    • 2018-03-13
    • 2022-10-05
    • 2020-07-19
    • 1970-01-01
    相关资源
    最近更新 更多