日期:2014-05-16  浏览次数:20340 次

如何去掉数组的重复元素?
使用JavaScript编写一个方法,去掉一个数组的重复元素并输出?

------解决方案--------------------
JScript code

function delSameItem(arr) {
    var _temp = {};
    var _arrTemp = [];
    var _len = arr.length;
    for(var i = 0; i < _len; i++) {
        if(!_temp[arr[i]]) {
            _arrTemp.push(arr[i]);
            _temp[arr[i]] = 1;
        }
    }
    return _arrTemp;
}

------解决方案--------------------
JScript code

var arr = [1, 5, 7, 5, 9];

function p(arr){
    var ret = [];
    var o = {};
    for(var i=0, len=arr.length; i<len; ++i){
        if(!o[arr[i]]){
            ret.push(arr[i]);
            o[arr[i]] = arr[i];
        }
    }
    return ret;
}

------解决方案--------------------
JScript code
if(!_temp[arr[i]]) {   ==>if(typeof(temp[arr[i]])==="undfined"//否则0始终为移除

ret.push(arr[i]);    ==>ret[ret.length]=arr[i];//效率更高

------解决方案--------------------
2、3楼正解,我完善下
<script>
var arr = [1, 2, 3, 4, 5, 2, 3];
function p(arr1){
var ret = [];
var o = {};
for(var i=0; i<arr.length; ++i){
if(!o[arr[i]]){
ret.push(arr[i]);
o[arr[i]] = arr[i];
}
}
arr=ret.concat();
}
document.write(arr+"<br>");
p(arr);
document.write(arr+"<br>");
</script>
------解决方案--------------------
探讨
JScript code

function delSameItem(arr) {
var _temp = {};
var _arrTemp = [];
var _len = arr.length;
for(var i = 0; i < _len; i++) {
if(!_temp[arr[i]]) {
_ar……