• Array对象方法属性汇总


    创建数组

    一、采用直接量创建

    	var arr1 = [];   			     //创建一个空数组
    	var arr2 = [1, 2, 3];      // 创建一个有三个元素的数组
    

    二、采用构造函数创建

    	var arr3 = new Array();    //创建一个空数组
    	var arr4 = new Array(10);  //创建一个长度为10的空数组
    	var arr5 = new Array(5,4,3,2,1);  //创建数组并初始化
    

    数组属性

    一、constructor (返回创建数组对象的原型函数)

    	var cars = ['Volvo', 'BMW', 'Saab'];
    	cars.construtor; 
    	//输出:function Array() { [native code] }
    

    二、length (返回数组的长度,即数组元素的个数)

    	var cars = ['Volvo', 'BMW', 'Saab'];
    	cars.length;
    	//输出:3
    	//cars含有3个元素,所以cars的长度为3       
    

    三、prototype (Array属性构造器,为原型函数Array添加属性或方法)

    	Array.prototype.myUpperCase = function() {
    		for(i=0; i<this.length; i++) {
    			this.[i] = this.[i].toUpperCase();
    		}
    	};
    
    	var fruits = ['Banana', 'Orange', 'Apple', 'Mango'];
    
    	fruits.myUpperCase();
    
    	console.log(fruits);
    
    	//输出: ['BANANA', 'ORANGE', 'APPLE', 'MANGO'];
    
    

    Array对象属性

    一、every()方法

    1、定义和用法

    • every()方法用于检测所有元素是否都符合指定条件(通过函数提供)
    • every()方法使用指定函数检测数组中的每一个元素

    注意:every()方法不会对空数组进行检测
    注意:every()方法不会改变原数组

    2、语法

    	array.every(function(currentValue, index, arr), thisValue);
    	
    	/**
    	 * @ function(currentValue, index, arr)
    	 *   必须。函数,数组中的每个元素都会执行这个函数
    	 *   @ currentValue: 必须,当前元素的值
    	 *   @ index:可选,当前元素的索引
    	 *   @ arr:可选,当前元素属于的数组对象
    	 *
    	 * @ thisValue: 可选,对象作为该执行回调时使用,传递给函数,用作‘this’的值,如果省略了thisValue,‘this’的值为‘undefined’
    	 */
    	
    	// 返回值:布尔值,如果所有元素都通过检测则返回true,否则返回false。
    
    

    3、实例

    	var numbers = [2, 3, 4, 5, 7, 8];
    
    	numbers.every(function(curr) {
    		return curr >= 5;
    	});
    
    	// 上边代码的返回值为false, 因为存在小于5的值
    
    	numbers.every(function(curr) {
    		return curr >= 1;
    	});
    
    	// 上面代码的返回值为true, 数组中每一个元素都大于1
    
    

    二、some()方法

    1、定义和用法

    • some()方法用于检测数组中的元素是否满足指定条件
    • some()方法会依次执行数组的每个元素

    注意:some()方法不会对空数组进行检测
    注意:some()方法不会改变原数组

    2、语法

    	array.some(function(currentValue, index, arr), thisValue);
    
    	/**
    	 * @ function(currentValue, index, arr)
    	 *   必须。函数,数组中的每个元素都会执行这个函数
    	 *   @ currentValue: 必须,当前元素的值
    	 *   @ index:可选,当前元素的索引
    	 *   @ arr:可选,当前元素属于的数组对象
    	 *
    	 * @ thisValue: 可选,对象作为该执行回调时使用,传递给函数,用作‘this’的值,如果省略了thisValue,‘this’的值为‘undefined’
    	 */
    	
    	// 返回值:布尔值,如果数组中有元素满足条件则返回true, 否则返回false;
    
    

    3、实例

    	var ages = [4, 12, 16, 20, 24];
    	ages.some(function(curr) {
    		return curr >= 18;
    	});
    
    	// 上面代码的返回值为true,因为存在大于等于18的值
    
    

    三、map()方法

    1、定义和用法

    • map()方法返回一个新数组,数组中的元素为原始数组元素调用处理后的值
    • map()方法按照原始数组元素顺序依次处理元素

    注意:map()不会对空数组进行检测
    注意:map()不会改变原始数组

    2、语法

    	array.map(function(currentValue, index, arr), thisValue)
    
    	/**
    	 * @ function(currentValue, index, arr)
    	 *   必须。函数,数组中的每个元素都会执行这个函数
    	 *   @ currentValue: 必须,当前元素的值
    	 *   @ index:可选,当前元素的索引
    	 *   @ arr:可选,当前元素属于的数组对象
    	 *
    	 * @ thisValue: 可选,对象作为该执行回调时使用,传递给函数,用作‘this’的值,如果省略了thisValue,‘this’的值为‘undefined’
    	 */
    	
    	// 返回值:返回数组,数组中的元素为原始数组元素调用函数处理后的值
    
    

    3、实例

    	var names = ['Edison', 'Daniel', 'Jack', 'Andy'];
    
    	names.map(function(curr) {
    		return curr.toUpperCase();
    	})
    
    	// 输出:['EDISON', 'DANIEL', 'JACK', 'ANDY'];
    
    

    四、forEach()方法

    1、定义和用法

    • forEach()方法会遍历数组中的每个元素,并将元素传递给回调函数

    注意:forEach()对于空数组不会执行回调函数
    注意:forEach()也不会改变原始数组

    2、语法

    	array.forEach(function(currentValue, index, arr), thisValue);
    
    	/**
    	 * @ function(currentValue, index, arr)
    	 *   必须。函数,数组中的每个元素都会执行这个函数
    	 *   @ currentValue: 必须,当前元素的值
    	 *   @ index:可选,当前元素的索引
    	 *   @ arr:可选,当前元素属于的数组对象
    	 *
    	 * @ thisValue: 可选,对象作为该执行回调时使用,传递给函数,用作‘this’的值,如果省略了thisValue,‘this’的值为‘undefined’
    	 */
    
    	// 返回值:undefined,
    

    3、实例

    	var sum = 0;
    	var numbers = [1, 2, 3, 4, 5];
    
    	numbers.forEach(function(curr) {
    		sum += curr;
    	});
    
    	console.log(sum);  // 15
    
    	// 遍历数组numbers中的每个元素,并将当前元素与sum相加。
    
    

    五、filter()方法

    1、定义和用法

    • filter()方法会返回一个新的数组,新数组中的元素是符合条件函数检查的元素。

    注意:filter()不会对空数组进行检测
    注意:filter()不会改变原始数组

    2、语法

    	array.filter(function(currentValue, index, arr), thisValue)
    
    	/**
    	 * @ function(currentValue, index, arr)
    	 *   必须。函数,数组中的每个元素都会执行这个函数
    	 *   @ currentValue: 必须,当前元素的值
    	 *   @ index:可选,当前元素的索引
    	 *   @ arr:可选,当前元素属于的数组对象
    	 *
    	 * @ thisValue: 可选,对象作为该执行回调时使用,传递给函数,用作‘this’的值,如果省略了thisValue,‘this’的值为‘undefined’
    	 */
    	
    	// 返回值:返回数组(符合条件的元素组成的新数组)。如果没有符合条件的元素则返回空数组
    
    

    3、实例

    	var ages = [18, 24, 30, 23, 12];
    
    	ages.filter(function(curr) {
    		return curr >= 18;
    	});
    
    	// 输出:[18, 24, 30, 23]
    
    
  • 相关阅读:
    POJ 2155:Matrix 二维树状数组
    POJ 2823:Sliding Window 单调队列
    POJ 3007:Organize Your Train part II
    51nod 1208 && POJ 2482:Stars in Your Window
    POJ 3061:Subsequence 查找连续的几个数,使得这几个数的和大于给定的S
    51nod 1206:Picture 求覆盖周长
    POJ 1195:Mobile phones 二维树状数组
    lightoj 1319
    暴力大法好
    Poj1273--Drainage Ditches(最大流)
  • 原文地址:https://www.cnblogs.com/jayxiangnan/p/9072797.html
Copyright © 2020-2023  润新知