Js的有些操做會改變原來的對象;有些操做則不會改變原來對象。javascript
數組的filter方法就不會改變原來數組java
利用filter,能夠巧妙地去除Array的重複元素:git
'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濾掉了,因此重複的元素僅會保留第一個位置的元素github
參考:https://github.com/mobxjs/mobx/issues/1315數組