数组去重,计算数组重复元素的个数

2019-03-05  本文已影响0人  懵懵圈
var arr1 = ["苹果", "香蕉", "栗子", "芒果", "芒果"];
var arr2 = ["苹果", "香蕉", "葡萄"];
var arr = arr1.concat(arr2); //把两个数组合为一个数组
//计算数组中重复元素的个数
console.log(arr);
var _res = [];
arr.sort();
for (var i = 0; i < arr.length;) {
    var count = 0;
    for (var j = i; j < arr.length; j++) {
        if (arr[i] == arr[j]) {
            count++;
        }
    }
    _res.push({ name: arr[i], value: count });
    i += count;
}
console.log(_res);
// [

//    { name: "栗子", value: 1 },

//    { name: "芒果", value: 2 },

//    { name: "苹果", value: 2 },

//    { name: "葡萄", value: 1 },

//    { name: "香蕉", value: 2 }

// ]

var xAxisData = [];
var seriesData = [];
for (var i = 0; i < _res.length; i++) {
    xAxisData.push(_res[i].name);
    seriesData.push(_res[i].value);
}
console.log(xAxisData, seriesData); //["栗子", "芒果", "苹果", "葡萄", "香蕉"],[1, 2, 2, 1, 2]

//借助indexOf()方法判断此元素在该数组中首次出现的位置下标与循环的下标是否相等 (数组去重)
for (var i = 0; i < arr.length; i++) {

    if (arr.indexOf(arr[i]) != i) {

        arr.splice(i, 1); //删除数组元素后数组长度减1后面的元素前移

        i--; //数组下标回退

    }

}

//借助新数组 判断新数组中是否存在该元素如果不存在则将此元素添加到新数组中 (数组去重)
var newArr = [];
for (var i = 0; i < arr.length; i++) {
    if (newArr.indexOf(arr[i]) == -1) {
        newArr.push(arr[i]);
    }
}
console.log(newArr); //["栗子", "芒果", "苹果", "葡萄", "香蕉"]

//借助新数组 通过indexOf方判断当前元素在数组中的索引如果与循环的下标相等则添加到新数组中 (数组去重)
var ret = [];
for (var i = 0; i < arr.length; i++) {
    if (arr.indexOf(arr[i]) == i) {
        ret.push(arr[i]);
    }
}
console.log(ret); //["栗子", "芒果", "苹果", "葡萄", "香蕉"]
var times = 0;
var bubbleSort = function(arr) {
    for (var i = 0; i < arr.length - 1; i++) {
        for (var j = i + 1; j < arr.length; j++) {
            if (arr[i] > arr[j]) {
                var temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
            }
            console.log("第" + (++times) + "次排序后:" + arr);
        }
    }
    return arr;
}
var element = [1, 4, 2, 5, 2, 1, 6, 5, 77, 1];
console.log("The result is:" + bubbleSort(element));
上一篇 下一篇

猜你喜欢

热点阅读