JavaScript的filter用法
Js的有些操作会改变原来的对象;有些操作则不会改变原来对象。
数组的filter方法就不会改变原来数组
利用filter,可以巧妙地去除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总是返回第一个元素的位置,后续的重复元素位置与indexOf返回的位置不相等,因此被filter滤掉了,所以重复的元素仅会保留第一个位置的元素
array.filter don't update the origin array
参考:https://github.com/mobxjs/mobx/issues/1315