Some operations of JS will change the original object, and some operations will not change the original object.
The array's filter method does not change the original array
With filter, you can subtly remove the repeating elements of an array:
‘use strict‘;var r,arr = [‘apple‘, ‘strawberry‘, ‘banana‘, ‘pear‘, ‘apple‘, ‘orange‘, ‘orange‘, ‘strawberry‘];r = arr.filter(function (element, index, self) { return self.indexOf(element) === index;});alert(r.toString());
IndexOf always returns the position of the first element, and subsequent repeating element positions are not equal to the position returned by IndexOf, so the filter is filtered out, so the repeating element retains only the first position of the element
Array.filter don ' t update the origin array
Reference: https://github.com/mobxjs/mobx/issues/1315
The filter usage of JavaScript