`
tiantian-yuqing
  • 浏览: 23707 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论

如何统计数组 字符串 对象中某一元素出现的次数

阅读更多
    如何统计数组中某一元素出现的次数,字符串元素出现的次数或者对象中某一属性值出现的次数呢?
对于统计数组中某一元素出现的次数,可以这样:
      function arrNumber(arr){
            var arr_number = {};
            for(var i = 0 ; i < arr.length ; i++){
                if(arr_number[arr[i]]){
                    arr_number[arr[i]]++
                }
                else{
                    arr_number[arr[i]] = 1 ;
                }
            }
            return arr_number ;
        }
        var array = [1,3,5,3,5,3];
       arrNumber(array);  //输出{1: 1, 3: 3, 5: 2}


  同理,统计字符串元素出现的次数:
function charNum(str){      
    var charObj={}                //创建一个空对象  
    for(i=0,len=str.length;i<len;i++){  
        if(charObj[str[i]]){      //str[i]为key      
            charObj[str[i]]++;    //charObj[str[i]]为value  
        }else{   
            charObj[str[i]]=1;  
        }  
    }  
    var strTem="";  // 临时变量  
    for(value in charObj){  
        strTem+='"'+value+'"的个数:'+charObj[value]+'\n';  
    }  
    return strTem;  
}  
document.write(charNum("11,23"));  //"1"的个数:2 "2"的个数:1 "3"的个数:1 ","的个数:1


    有没有更简单一点的方法呢?恩。。。有了,underscore中的countBy()方法可以帮我们解决这个问题。
   对于统计数组元素出现的次数:
var array = [1,3,5,3,5,3];
_(array).countBy() // 输出{1: 1, 3: 3, 5: 2} 

   看,是不是很一步就搞定呐
   对于统计字符串元素出现的次数:
 var array = "12121";
 _(array).countBy());  // {1: 3, 2: 2} 

   数组和字符串统计元素出现的次数解决了,那对象呢?如何统计对象中某属性值出现的次数呢?
如:
   var user_list = 
    [{"name":"王五","phone":"189900971077","price":"8"},
     {"name":"李四","phone":"189900971078","price":"6"},
     {"name":"张三","phone":"189900971079","price":"8"}]; 

   怎么统计价钱出现的次数呢?
   如果只是为了获取价钱出现的次数,可以先把价钱单独提出为一个新数组,然后按照上面统计数组元素的方法就可以了:
   提取对象中某一属性值,可以用underscore中的pluck()方法。
 var price = _(user_list).pluck('price')  //["8", "6", "8"] 

   然后对price运用countBy()方法就好了
_(price).countBy()  //{6: 1, 8: 2} 

   可是我不仅想得到某价钱的人数,我还想知道出这个价钱有哪些人。那我该怎么办呢?。。。underscore来帮你!
 _(user_list).groupBy("price") 

输出结果:
{6: [{name: "李四", phone: "189900971078", price: "6"}] ,
 8: [{name: "王五", phone: "189900971077", price: "8"},                        
     {name: "张三", phone: "189900971079", price: "8"}]}
 

   这时得到的是一个对象,key为价钱,value是此价钱对应的人员信息组成的数组。
   如果我想得到价钱最低且不重复的出价人信息呢?首先当然是用sortBy()对user_list按价钱排序啦,然后用groupBy()按价钱分组,最后就是用find()方法找到value的长度为1的对象。(find()如果找到匹配的元素,函数将立即返回,不会遍历整个list。)这样连续使用多种方法,是不是需要定义很多变量呢?有没有什么方法可以简化呢?
   underscore又来啦:
  
 var lowest_price = _.chain(user_list)
        .sortBy("price")
        .groupBy("price")
        .find(function(value){return value.length ==1 })
        .value();

  输出lowest_price:
[{name: "李四", phone: "189900971078", price: "6"}]
分享到:
评论

相关推荐

    数组与字符串.docx

    ` 或者使用`new String()`构造函数创建字符串对象。 2. **字符串的比较**: - 使用`equals()`方法比较两个字符串是否相等,例如,`if (str1.equals(str2))`。 3. **字符串的拼接**: - 使用加号(`+`)或`concat...

    检查字符串中字符出现的次数(包含汉字)

    本文将根据提供的代码示例,详细解析如何在Java程序中统计一个字符串中各个字符(包括汉字)出现的次数。该方法适用于任何包含字符的字符串,无论这些字符是英文字母、数字还是汉字。 #### 代码实现细节 1. **导入...

    VB使用数组分类统计字符

    假设我们有一个字符串,想要将其字符逐个存入数组,可以这样做: ```vb Dim str As String = "Hello, World!" Dim charArray() As Char = str.ToCharArray() ``` 这段代码首先将字符串转换为字符数组,然后将结果...

    Java编程实现统计一个字符串中各个字符出现次数的方法

    Java编程实现统计一个字符串中各个字符出现次数的方法 本文主要介绍了Java编程实现统计一个字符串中各个字符出现次数的方法,涉及java针对字符串的遍历、判断、运算等相关操作技巧。本文将通过一个实例,讲述如何...

    java 查找字符串中出现最多的字母

    在本例中,字符串 `"djasjdklasjdklasjaiurakczkcnss"` 被存储为一个 `String` 对象,并通过 `toCharArray()` 方法转换成字符数组 `char[] c`。这一步是将字符串拆分为单个字符的基础。 #### 集合框架 - **HashSet*...

    C++将一串带空格的数字字符串排序并统计重复元素输出

    本问题涉及的主要知识点包括字符串处理、字符数组、字符转换、排序算法以及统计重复元素。以下是对这些知识点的详细解释: 1. **字符串处理**:C++中的字符串通常用`std::string`类来表示。但在此场景下,由于字符...

    JavaScript统计字符串中每个字符出现次数完整实例

    在JavaScript中统计字符串中每个字符出现的次数是一个常见的编程练习题,同时也是一种实用的技术。下面将详细介绍如何使用JavaScript实现这一功能,以及相关的知识点和操作技巧。 首先,实现这一功能需要理解...

    JS中判断字符串中出现次数最多的字符及出现的次数的简单实例

    标题和描述中提到的知识点主要是在JavaScript(简称JS)中如何实现一个简单的功能,即找出一个字符串中出现次数最多的字符以及对应的出现次数。以下是对这一功能实现过程的详细说明: 首先,要实现这一功能,需要...

    java求数组元素重复次数和java字符串比较大小示例

    该方法接受一个整型数组`array`和一个整数`max`(表示数组中可能的最大元素值)作为参数,返回一个Map对象,其中包含了重复次数最多的元素值(value)及其重复次数(maxCount)。 首先,创建一个HashMap类型的`...

    JavaScript实现计算字符串中出现次数最多的字符和出现的次数

    本知识点主要关注如何利用JavaScript编程语言实现对字符串中出现次数最多的字符及其出现次数的计算。 1. 字符串基础概念:在JavaScript中,字符串是由16位无符号整数(UTF-16)序列构成的数据类型,可以表示文本...

    用python一行代码得到数组中某个元素的个数方法

    ### 使用Python一行代码...通过上述方法,我们可以非常方便地使用一行Python代码来统计数组(或列表)中特定元素的出现次数。这些方法不仅简单易用,而且效率较高,非常适合于实际开发中的快速原型设计和数据处理任务。

    Java求字符串中出现次数最多的字符串以及出现次数

    在Java编程中,统计字符串中出现次数最多的字符及其出现次数是一项常见的任务,尤其在数据处理和文本分析领域。本问题的解决方案使用了多种Java集合框架类,包括`TreeSet`、`ArrayList`、`HashMap`和`StringBuffer`...

    js代码-3.23:第一次练习,选择冒泡排序,// 数组中元素出现的次数,// 一个字符串里面某个字母出现的次数,转RMB。

    上述函数会返回一个对象,键是数组中的元素,值是它们出现的次数。 再者,计算字符串中某个字母出现的次数。这可以通过遍历字符串,然后使用条件判断来完成。以下是一个例子: ```javascript function ...

    vb字符串分隔与合并的程序实例

    VB提供了多种优化策略,例如使用`StringBuilder`类(在.NET框架中)来构建和修改字符串,避免频繁的字符串对象创建。此外,适当使用循环和条件判断可以减少不必要的计算。 5. **源码示例** 虽然具体的源码没有提供...

    java面向程序设计数组、字符串、枚举、泛型的应用[参照].pdf

    实验中要求统计字符串中每个字符的出现次数,这需要用到字符串的遍历和字符计数。可以使用`charAt()`方法获取指定位置的字符,以及`length()`方法获取字符串长度,再配合循环进行计数。 3. **枚举**:枚举是Java中...

    统计jQuery中各字符串出现次数的工具

    在统计jQuery中各字符串出现次数的工具中,JavaScript的正则表达式是不可或缺的一部分。通过正则表达式可以实现对字符串的灵活匹配。在这个工具的实现中,使用正则表达式来构建一个用于匹配字符串的正则对象(RegExp...

    JS简单判断字符在另一个字符串中出现次数的2种常用方法

    在JavaScript编程语言中,我们经常需要处理字符串,其中包括查找某个字符在字符串中出现的次数。本文将详细介绍两种常用的方法来实现这一功能。 1. **通过分割获取长度** 这个方法利用JavaScript的`split()`函数...

    三种方式统计string中出现次数最多的char

    在编程领域,统计一个字符串中出现次数最多的字符是一项常见的任务,尤其在数据分析和文本处理中。下面我们将详细探讨三种不同的方法来实现这个功能,分别基于循环遍历、使用哈希表以及利用Python的内置函数。 1. *...

Global site tag (gtag.js) - Google Analytics