数组去重统计排序

需求是:统计次数并按照要求排序;

思路:

第一步:拼接字符串,返回一个字符串数组;

第二步 :查询数组,去重并统计次数;

第三步:使用sort()函数进行排序;

第四步:join()函数。把数组元素放到字符串中,的确很绕,学程序的没办法,多练习。

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>数组去重统计排序</title>
<style>
body {text-align:center;}
</style>
<script>
window.onload=function (){
    var oBtn=document.getElementById(‘btn1‘);
    var oText1=document.getElementById(‘txt1‘);
    var oText2=document.getElementById(‘txt2‘);

    oBtn.onclick=function (){
        var json={};

        var arr=oText1.value.split(‘ ‘);

        for (var i=0; i<arr.length; i++)
        {
            var value=arr[i];

            if (json[value])
            {
                json[value]++;
            }
            else
            {
                json[value]=1;
            }
        }

        // alert(JSON.stringify(json));

        /*
            [
                {name:i, num:json[i]},
                {name:i, num:json[i]},
                {name:i, num:json[i]}
            ]
        */
        var arr2=[];
        for(var i in json)
        {
            arr2.push({
                name:i,
                num:json[i]
            });
        }
        //console.log(arr2);
        arr2.sort(function(j1,j2){
            return j2.num-j1.num;
        });

        var arr3=[];
        for(var i=0;i<arr2.length;i++)
        {
            var json=arr2[i];
            arr3.push(json[‘name‘]+‘:‘+json[‘num‘]);
        }
        oText2.value=arr3.join(‘\n‘);
    };
};

function findInArr(arr, obj)
{
    for (var i=0; i<arr.length; i++)
    {
        if (arr[i]==obj)
        {
            return true;
        }
    }

    return false;
}
</script>
</head>

<body>
输入原始文本(空格隔开):<br>
<textarea style="width:300px; height:200px;" id="txt1">衣服 运动鞋 篮球鞋 跑步鞋 休闲鞋 帆布鞋 足球鞋 衣服 衣服 衣服 跑步鞋 跑步鞋 跑步鞋 跑步鞋 休闲鞋 帆布鞋 休闲鞋 帆布鞋 休闲鞋 帆布鞋</textarea><br>
<br>
<input type="button" value="变" id="btn1" /><br>
<br>
这里输出结果:<br>
<textarea style="width:300px; height:200px;" id="txt2"></textarea>
</body>
</html>
时间: 2024-08-19 11:02:22

数组去重统计排序的相关文章

数组去重及排序/0~10随机数字/字符串中出现最多的字符及次数

数组去重及排序: var arr = [1,5,1,2,6,8,1,81,9,0]; for(var i=0;i<arr.length;i++){ for(var j=i+1;j<arr.length;j++){ if(arr[i] == arr[j]){ arr.splice(j,1); j--; } } } arr.sort(function(a,b){ return a-b; // 从小到大排序 }) alert(arr); // 0,1,2,5,6,8,9,81 arr.sort(fu

7、数组去重和排序

一.数组去重 /** * 数组去重 * 1.双循环法-判断有无相等项 * 注意:第二个循环要从 i+1 开始 * */ let circleRepeat = function (ary) { for(let i=0;i<ary.length;i++){ let cur = ary[i]; for(let j=i+1;j<ary.length;j++){ if(cur === ary[j]){ ary.splice(j,1); j--; } } } return ary }; // consol

数组-去重、排序方法、json排序

1.数组去重 /*方法一: 1,'1' 会被认为是相同的; 所有hash对象,如:{x;1},{y:1}会被认为是相同的 //10ms */ Array.prototype.unique=function(){ var newArr=[],obj={}; for(var i=0,len=this.length;i<len;i++){ if(!obj[this[i]]){ newArr.push(this[i]); obj[this[i]]=true; } } return newArr; } /

数组去重和排序

一.常见的数组排序方法: //冒泡 function bubbleSort(arr){ var r=1,i=0; for(r=1;r<arr.length;r++){ for(i=0;i<arr.length-1;i++){ arr[i]>arr[i+1]&&(arr[i+1]=[arr[i],arr[i]=arr[i+1]][0]) } } } //插入 var arr=[2,4,1,3,5]; function insertSort(arr){ for(var i=1

简洁的数组去重并排序

1 var c=[1,8,6,4,88,22,99,4,6,86,5,58,89,5]; 2 c.sort(function (a,b) { 3 return a-b;//从小到大排序 改变原数组 4 }); 5 c = unique(c); 6 function unique(arr){ 7 var res = [arr[0]]; 8 for(var i=1;i<arr.length;i++){ 9 if(arr[i] !== res[res.length-1]){ 10 res.push(a

ES6 set方法对数组去重和排序

之前对数组做去重有很多方法,但大多比较麻烦,现在用ES6里面的set方法非常方便 直接上代码 <!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> </head> <body> <script> function 初级写法(){ let arr = [3,5,2,1,3,2,4]; le

数组去重并排序

unique (arr) { for (let i = 0; i < arr.length; i++) { for (let j = i + 1; j < arr.length; j++) { if (arr[i] === arr[j]) { arr.splice(j, 1) j-- } } } // 升序 arr.sort((a, b) => { return b < a ? 1 : -1 }) // 降序 // arr.sort((a, b) => { // return

数组的合并,去重,排序

一,两个数组的合并去重: var arr1 = ['a','b']; var arr2 = ['a','c','d']; var arr3 = [1,'d',undefined,true,null]; //合并两个数组,去重 var concat_ = function(arr1,arr2){ //不要直接使用var arr = arr1,这样arr只是arr1的一个引用,两者的修改会互相影响 var arr = arr1.concat(); //或者使用slice()复制,var arr =

斐波那契数列,冒泡排序,选择排序,数组去重

斐波那契数列: 斐波那契数列,又称黄金分割数列,指的是这样一个数列:0.1.1.2.3.5.8.13.21.--在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)在现代物理.准晶体结构.化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963起出版了以<斐波纳契数列季刊>为名的一份数学杂志,用于专门刊载这方面的研究成果. 这个数列从第二项开始,每一项都等于前两项之和. function abc(num){