javascript 数组扩展实现 php array_count_values() 函数功能

在PHP中,array_count_values() 这个函数可以统计数组元素出现的次数,这个函数会返回一个数组,键名是原数组的值,键值是这个值出现的次数。

但是JavaScript中没有这样的函数。不过大神无数,前些日子发现这样的一个扩展:

/**

javascript 数组扩展实现 php array_count_values() 函数功能

*/

(function(window){

    if ( window.ActiveXObject ) {

        window.Array.prototype.indexOf = function(item){

            for( var i = 0; i < this.length; i++ ) {

                if ( this[i] === item ) return i;

            }

            return -1;

        }

    }

    window.Array.prototype.countValues = function() {

        var keys = [];

        var values = {};

        for( var i = 0; i < this.length; i++ ) {

            if ( keys.indexOf( this[i] ) != -1 ) {

                values[this[i]] += 1;

            } else {

                keys.push( this[i] );

                values[this[i]] = 1;

            }

        }

        return values;

    }

})(window);

这样数组就有了一个叫countValue的函数,这个函数可以返回对象,和php那个关联数组类似。

javascript 数组扩展实现 php array_count_values() 函数功能

时间: 2024-10-21 21:42:45

javascript 数组扩展实现 php array_count_values() 函数功能的相关文章

js 判断数组包含某值的方法 和 javascript数组扩展indexOf()方法

var  questionId = []; var anSwerIdValue = []; ////javascript数组扩展indexOf()方法 Array.prototype.indexOf = function (e) { for (var i = 0, j; j = this[i]; i++) { if (j.indexOf(e) != -1) { return i; } } return -1; } if (anSwerIdValue.length < 14) { alert(&quo

javascript 数组相关的一些 自定义函数

* php shuffle 打乱数组顺序 Array.prototype.shuffle = function () { "use strict"; var a = [], b = [], n = this.length, i, j, seq; // @b: a[i] element exists? for (i = 0; i < n; i++) { b[i] = 0; } function _getIndex(b, seq) { var n = b.length; for (i

JavaScript数组遍历map()的原型扩展

在 JavaScript 1.6 里,javascript 数组增加了几个非常有用的方法:indexOf.lastIndexOf.every. filter. forEach. map. some,其中前两个可以归为元素定位方法,而后面的几个则可以归为迭代(iterative)方法. 遗憾的是:这些新方法并非所有浏览器都支持,在这种情况下,我们就需要自己动手了,在这些介绍的文章中,我们同时提供了在不支持这些新特性的浏览器中的实现方法. 原生方法如下: 1 var mappedArray = ar

js 的数组怎么push一个对象. Js数组的操作push,pop,shift,unshift JavaScript使用push方法添加一个元素到数组末 JavaScript数组函数unshift、shift、pop、push使用

push()函数用于向当前数组的添加一个或多个元素,并返回新的数组长度.新的元素将会依次添加到数组的末尾. 该函数属于Array对象,所有主流浏览器均支持该函数. 语法 array.push( item1 [,items... ] )参数 参数 描述item1 任意类型添加到当前数组末尾处的元素.items 可选参数/任意类型要添加到当前数组末尾处的其他项,可以有多个.注意:如果添加的元素类型为数组类型(Array),仍然会被当作一个元素看待,只是这个元素是数组类型而已.如果要合并两个数组,请使

javascript中的数组扩展(一)

 javascript中的数组扩展(一) 随着学习的深入,发现需要学习的关于数组的内容也越来越多,后面将会慢慢归纳,有的是对前面的强化,有些则是关于前面的补充. 一.数组的本质    数组是按照次序排列的一组值,本质上,数组是一种特殊的对象            console.log(typeof[1,2,3]);//object    数组是对象但是对象不是数组            var arr = ['a','b','c','d','e'];            console.lo

JavaScript系列二:变量、数组、流程控制、函数以及事件响应

JavaScript入门内容的复习:JavaScript入门 输出内容 document.write("xxx"); 弹出警告窗口 alert("xxx"); 弹出确认窗口 confirm("xxx"); 弹出提问窗口 prompt("xxx"); 单行注释 // 多行注释 /* */ 函数语法格式 function xxx() { xxxx; } 引入JS外部文件的方式 <script src="xx.js&

javascript 数组的常用操作函数

join() Array.join(/* optional */ separator) 将数组转换为字符串,可带一个参数 separator (分隔符,默认为","). 与之相反的一个方法是:String.splict() ,将字符串分隔成若干块来创建一个新的数组. reverse() Array.reverse(),颠倒数组元素的顺序,返回逆向的数组.注意此方法会修改原来数组元素的位置,而不是返回一个新的数组. sort() sort() 方法将数组中的元素排序并返回排序后的数组.s

JavaScript 数组操作函数--转载+格式整理

JavaScript 数组操作函数(部分)--转载+格式整理 今天看了一篇文章,主要讲的对常用的Js操作函数:push,pop,join,shift,unshift,slice,splice,concat的总结.身为一个有点完美主义的强迫症患者来说,原文的格式,差点杀死我.so,这篇文章就出来了……原文:传送门. 一.push 和 pop 这两个函数都是对数组从尾部进行压入或弹出操作. push(arg1,arg2,...)可以每次压入一个或多个元素,并返回更新后的数组长度. 注意:如果参数也是

PHP 统计数组中所有的值出现的次数 array_count_values 函数

array_count_values() 函数用于统计数组中所有的值出现的次数. array_count_values() PHP array_count_values() 函数用于统计数组中所有的值出现的次数,返回一个数组,其元素的键名是原数组的值,键值是该值在原数组中出现的次数. 语法: 1 array array_count_values( array array ) 例子: 1 2 3 4 <?php $arr_a = array("a", "b",