JavaScript過濾數(shù)組中重復(fù)元素

字號(hào):

我是個(gè)JS初學(xué)者,我即將要說的這個(gè)方法也是大部分人都能想到的:
    從舊數(shù)組中取元素,一個(gè)個(gè)添加到新數(shù)組中,在添加的時(shí)候,與添加過的元素比較,如果相同,則不添加。
    首先定義兩個(gè)數(shù)組:
    var arrA = new Array(1,23,43,64,1,23,5,8,3,5,9);
    var arrB = getNewArray(arrA);  // 過濾函數(shù)
    然后開始編寫函數(shù)getNewArray()
    function getNewArray(receiveArray)
    {
    var arrResult = new Array();  //定義一個(gè)返回結(jié)果數(shù)組.
    for (var i=0; i    {
    if (/*在這里做i元素與所有判斷相同與否, 調(diào)用函數(shù)check(arrResult, receiveArray[i]);*/)
    {
    arrResult.push(receiveArray[i]); // 添加該元素到新數(shù)組。如果if內(nèi)判斷為false(即已添加過),則不添加。
    }
    }
    return arrResult;
    }
    然后編寫判斷函數(shù)check()
    function check(receiveArray, checkItem)
    {
    var index = -1;  // 函數(shù)返回值用于布爾判斷
    for (var i=0; i    {
    if (receiveArray[i]==checkItem) 
    {
    index = i;
    break;
    }
    }
    return index;
    }
    則在函數(shù)getNewArray()中的if應(yīng)該寫成:
    check(arrResult, receiveArray[i]) == -1
    好了,我們的目的達(dá)到了,合并以上代碼即可。
    var arrA = new Array(1,23,43,64,1,23,5,8,3,5,9);
    var arrB = getNewArray(arrA);  // 過濾函數(shù)
    function getNewArray(receiveArray)
    {
    var arrResult = new Array();  //定義一個(gè)返回結(jié)果數(shù)組.
    for (var i=0; i    {
    if (check(arrResult, receiveArray[i]) == -1) //在這里做i元素與所有判斷相同與否
    {
    arrResult.push(receiveArray[i]); // 添加該元素到新數(shù)組。如果if內(nèi)判斷為false(即已添加過),則不添加。
    }
    }
    return arrResult;
    }
    function check(receiveArray, checkItem)
    {
    var index = -1;  // 函數(shù)返回值用于布爾判斷
    for (var i=0; i    {
    if (receiveArray[i]==checkItem) 
    {
    index = i;
    break;
    }
    }
    return index;
    }