ECMAScirpt5 中 Array 類中的 filter 方法使用目的是移除所有的 ”false“ 類型元素 (false
, null
, undefined
, 0
, NaN
or an empty string):
var a=[1,2,"b",0,{},"",NaN,3,undefined,null,5]; var b=a.filter(Boolean); // [1,2,"b",{},3,5]
Boolean 是一個函數,它會對遍歷數組中的元素,並根據元素的真假類型,對應返回 true 或 false.
例如:
Boolean(0); // false Boolean(true); // true Boolean(1); // true Boolean(""); // false Boolean("false"); // true. "false"是一個非空字符串
實際上,下面這樣的寫法是一種簡寫模式
b = a.filter(Boolean);
它等價於
b = a.filter(function (x) { return Boolean(x); });
原文參考:http://www.devign.me/javascript-tip-remove-falsy-items-out-of-an-array