js中关于数组方法的使用

1排序

var arr=[12,34,56,74,77,34,99,42,12,7785];
//升序
	function sheng(newArr){
		newArr.sort(function(a,b){return a-b});
		return newArr;
	}
	alert(sheng(arr));
//降序
	function jiang(newArr){
		newArr.sort(function(a,b){return b-a});
		return newArr;
	}
	alert(jiang(arr));

2去重

<script>
	var arr=[12,34,56,74,77,34,99,42,12,7785];
	var arr2=[];
	function arr1(){
		for(var i=0;i<arr.length;i++){
			if(arr2.indexOf(arr[i])==-1){
				arr2[arr2.length]=arr[i];
			}
		}
		console.log(arr2);
	}
	arr1();
	for(var j in arr){
		console.log(arr[j]);
		}
</script>

3,过滤filter去重

var arr = [12, 34, 56, 74, 77, 34, 99, 42, 12, 7785];
var arr2 = arr.filter((item, i, array) => { 
    return array.indexOf(item)==i
})

4,查找某一个值在数组当中的索引下标

var arr = [12, 34, 56, 74, 77, 34, 99, 42, 12, 7785];
console.log(arr.map(item => item).indexOf(7785))//9

5,查找数组中是否有某一个值

var arr = [12, 34, 56, 74, 77, 34, 99, 42, 12, 7785];
var arr2 = arr.filter((item, i, array) => { 
    return array.indexOf(item)==i
})
console.log(arr2.indexOf(11) == -1)//0代表有找到 -1代表没有找到

6,JavaScript 数组去重并统计重复元素出现的次数

var arr = [1, 2, 3, 1, 2, 4];

            function arrayCnt(arr) {
                var newArr = [];
                for(var i = 0; i < arr.length; i++) {
                    if(newArr.indexOf(arr[i]) == -1) {
                        newArr.push(arr[i])
                    }
                }
                var newarr2 = new Array(newArr.length);
                for(var t = 0; t < newarr2.length; t++) {
                    newarr2[t] = 0;
                }
                for(var p = 0; p < newArr.length; p++) {
                    for(var j = 0; j < arr.length; j++) {
                        if(newArr[p] == arr[j]) {
                            newarr2[p]++;
                        }
                    }

                }
                for(var m = 0; m < newArr.length; m++) {
                    console.log(newArr[m] + "重复的次数为:" + newarr2[m]);
                }
            }
            arrayCnt(arr);    
var arr = [1, 2, 3, 1, 2, 4];

            function arrayCnt(arr) {
                var newArr = [];
                //使用set进行数组去重
                newArr = [...new Set(arr)];
                var newarr2 = new Array(newArr.length);
                for(var t = 0; t < newarr2.length; t++) {
                    newarr2[t] = 0;
                }
                for(var p = 0; p < newArr.length; p++) {
                    for(var j = 0; j < arr.length; j++) {
                        if(newArr[p] == arr[j]) {
                            newarr2[p]++;
                        }
                    }

                }
                for(var m = 0; m < newArr.length; m++) {
                    console.log(newArr[m] + "重复的次数为:" + newarr2[m]);
                }
            }
            arrayCnt(arr);
//方法:使用obj记录重复的元素,以及出现的次数
            function getCount(arr) {
                var obj = {},
                    k, arr1 = [];
                for(var i = 0, len = arr.length; i < len; i++) {
                    k = arr[i];
                    if(obj[k])
                        obj[k]++;
                    else
                        obj[k] = 1;
                }
                console.log(obj)
                //保存结果{el-'元素',count-出现次数}
                for(var o in obj) {
                    arr1.push({
                        el: o,
                        count: obj[o]
                    });
                }
                console.log(arr1);
            }

            getCount([4, 2, 2, 3, 1])
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值