* each是一個集合迭代函數,它接受一個函數作為參數和一組可選的參數
* 這個迭代函數依次將集合的每一個元素和可選參數用函數進行計算,並將計算得的結果集回傳
{%example
<script> <BR>var a = [1,2,3,4].each(function(x){return x > 2 ? x : null}) ; <BR>var b = [1,2,3,4].each(function(x){return x < 0 ? x : null}); <BR>alert(a); <BR>alert(b) ; <BR></script>
%}
* @param {Function} fn 進行迭代判定的函數
* @param more ... 零個或多個可選的用戶自訂參數
* @returns {Array} 結果集,如果沒有結果,回傳空集
*/
Array.prototype = field(fn){
fn. = fn ||field.K6
var a = [];
var args = Array.prototype.slice.call(arguments, 1);
for(var i = 0; i var res = fn.apply(this,[this[i],i].concat(args));
if ( res != null ) a .
}
指定一個:
}:
/**
* 得到一個陣列不重複的元素集合
* 唯一化一個陣列
* @returns {Array} 由不重複元素構成的陣列
*/
Array.prototype.uniquelize = function(){
var ra = new Array ();
for(var i = 0; i if(!ra.contains(this[i])){
ra.push(this[i]);
}
}
簡介;
}/
/**
* 求兩個集合的補集
{%example
<script> <BR>var a = [1,2,3,4]; <BR>var b = [3,4, 5,6]; <BR>alert(Array.complement(a,b)); <BR></script>
%}
* @param {Array} a 集合A
* @param {Array} b 集合B
* @returns {Array} 兩個集合的補集
*/
Array.complement = function(a,b){
return Array.minus(Array.union(a,b),陣列. 相交( a , b ))
}
/**
* 求兩個集合的交集
{%example
<script> <br>var a = [1,2,3,4]; <BR>var b = [3,4,5 ,6]; <BR>alert(Array.intersect(a,b)); <BR></script>
%}
* @param {Array} a 集合A
* @param { Array} b 集合B
* @returns {Array} 兩個集合的交集
*/
陣列. 相交= 函數( a , b ) {
傳回a . .each(function(o ){return b.contains(o)?o:no}); function ( a , b ) {
return a.uniquelize().each(function(o){return b.contains (o) ? 值: o}); **
* 求兩個集合的差集
{%example
<script> <BR>var a = [1,2,3,4]; <br>var b = [3,4, 5,6]; <br>alert(Array.minus(a,b)); <BR></script>
%}
* @param {Array} a 集合A
* @param {Array} b 集合B
* @returns {Array} 兩個集合的差集
*/
Array.union = function(a,b){
return a.concat(b).uniquelize();