如何记住一个方法是否变异了原始数组?

时间:2019-02-22 22:33:29

标签: javascript methods

我知道我可以在MDN上找到一系列的mutator方法,但实际上,我始终会忘记诸如push()或reverse()之类的方法是对原始数组进行了突变还是创建了一个新数组。为什么某些方法是变种人而有些方法是非变种人,是否有逻辑,所以我很容易记住?

2 个答案:

答案 0 :(得分:3)

也许记住它们的一种有用方法是识别变异方法并将其分组;只有少量。

从数组添加/删除:

  • Array.prototype.fill()-在任何地方覆盖元素
  • Array.prototype.pop()-从开头删除
  • Array.prototype.push()-添加到开头
  • Array.prototype.shift()-从结尾删除
  • Array.prototype.unshift()-添加到结尾
  • Array.prototype.splice()-在任何地方添加/删除

重新排列数组:

  • Array.prototype.flat()-展平数组
  • Array.prototype.sort()-使用排序功能重新排列元素
  • Array.prototype.reverse()-反向元素

赔率:

  • Array.prototype.copyWithin()-老实说,我从未使用过这种方法

变异数组方法列表-

  • Array.prototype.copyWithin()
  • Array.prototype.fill()
  • Array.prototype.flat()
  • Array.prototype.pop()
  • Array.prototype.push()
  • Array.prototype.reverse()
  • Array.prototype.shift()
  • Array.prototype.sort()
  • Array.prototype.splice()
  • Array.prototype.unshift()

非可变数组方法列表-

  • Array.from()-从可迭代的数组创建
  • Array.isArray()-检查变量是否为数组
  • Array.of()-创建一个数组; []
  • 的功能版本
  • Array.prototype.concat()-将多个数组组合成一个新的单个数组
  • Array.prototype.entries()-获取键/值对的迭代器
  • Array.prototype.every()-检查每个值是否与一个函数匹配
  • Array.prototype.filter()-创建与过滤条件匹配的值数组
  • Array.prototype.find()-使用函数查找值
  • Array.prototype.findIndex()-使用函数查找值的索引
  • Array.prototype.flatMap()-使用映射函数创建新数组
  • Array.prototype.forEach()-对每个值都产生副作用
  • Array.prototype.includes()-检查数组是否包含值
  • Array.prototype.indexOf()-按值查找值的索引
  • Array.prototype.join()-使用分隔符将值组合成字符串
  • Array.prototype.keys()-获取键的迭代器
  • Array.prototype.lastIndexOf()-从值末开始按值查找值的索引
  • Array.prototype.map()-使用映射函数创建新数组
  • Array.prototype.reduce()-折叠每个值,产生一个新值
  • Array.prototype.reduceRight()-从右开始折叠每个值,产生一个新值
  • Array.prototype.slice()-选择一个子数组
  • Array.prototype.some()-检查某些值是否与函数匹配
  • Array.prototype.toLocaleString()-数组的字符串表示形式,在值上使用toLocaleString
  • Array.prototype.toString()-数组的字符串表示形式,在值上使用toString
  • Array.prototype.values()-获取值的迭代器
  • Array.prototype[@@iterator]()-获取默认迭代器

答案 1 :(得分:0)

本质上,任何导致索引移位,减小或增长或以其他方式更改列表原始定义的方法都必须是可变的。助记符可能是要考虑您是想要数组中的内容还是想要对数组做某事? Shift和pop可以说是令人困惑的,因为它们实际上没有等效的不变的便捷方法,例如“ top”或“ last”。