生命不息,学习不止

js内置对象 – Array数组对象

arr.length:获取数组元素的长度。

var arr = ['Tom','John','Amy'];
arr.length // 3

arr.concat():合并两个或多个数组。

var arr1 = ['a', 'b', 'c'];
var arr2 = ['d', 'e', 'f'];
var arr3 = arr1.concat(arr2); // [ "a", "b", "c", "d", "e", "f" ]

arr.join(str):将arr以指定字符连接成字符串。

var arr = ['Tom','John','Amy'];
arr.join('#'); // Tom#John#Amy

arr.push():在数组末尾推入指定元素。

var arr = ['Tom','John','Amy'];
arr.push('Jack'); // 4
arr // ['Tom','John','Amy','Jack']

arr.pop():弹出并返回数组末尾元素。

var arr = ['Tom','John','Amy'];
arr.pop(); // Amy
arr // ['Tom','John']

arr.shift():弹出并返回数组第一个元素。

var arr = ['Tom','John','Amy'];
arr.shift(); // Tom
arr // ['John','Amy']

arr.unshift():在数组开头处添加指定元素。

var arr = ['Tom','John','Amy'];
arr.unshift('Jack'); // 4
arr // ['Jack',Tom','John','Amy']

arr.sort([函数:排序规则]):排序(默认采用字符串顺序排序,数字排序则需要通过自定义函数实现)。

var arr = ['Tom','John','Amy'];
arr.sort(); // ["Amy", "John", "Tom"]
arr // 改变原数组:["Amy", "John", "Tom"]

arr.reverse():数组元素顺序反转。

var arr = ["Amy", "John", "Tom"];
arr.reverse() // ['Tom', 'John', 'Amy']

arr.indexOf():获取指定元素在数组中的位置,不存在返回-1。

var arr = ["Amy", "John", "Tom"];
arr.indexOf('John'); // 1
arr.indexOf('David'); // -1

arr.lastIndexOf():获取指定元素最后一次出现的位置,不存在返回-1。

var arr = ["Amy", "John", "Tom", "David", "Tom", "Jeff"];
arr.lastIndexOf('Tom'); // 4
arr.lastIndexOf('James'); // -1

arr.slice(起始位置,结束位置):获取数组中指定的片段(不包含结束位置) – 复制数组。

var arr = ["Amy", "John", "Tom", "David", "Jeff"];
arr.slice(2) // ["Tom", "David", "Jeff"]
arr // 原数组不发生变化,["Amy", "John", "Tom", "David", "Jeff"]

var arr = ["Amy", "John", "Tom", "David", "Jeff"];
arr.slice(2,4) // 不包含结束位置 ["Tom", "David"]

arr.splice(起始位置,长度,元素1,元素2…):从数组中添加,删除,修改元素。

// 从索引2开始删除数组中所有的元素
var arr = ["Amy", "John", "Tom", "David", "Jeff"];
arr.splice(2) // ["Tom", "David", "Jeff"]
arr // 原数组发生变化,["Amy", "John"]

// 从索引2开始,删除数组中2个元素
var arr = ["Amy", "John", "Tom", "David", "Jeff"];
arr.splice(2,2) // ["Tom", "David"]
arr // 原数组发生变化,["Amy", "John", "Jeff"]

// 给数组添加元素:从2位置开始增加'jeff','David'两个元素
var arr = ["Amy", "John", "Tom"];
arr.splice(2,0,"Jeff","David");
console.log(arr); // ["Amy", "John", "Jeff", "David", "Tom"]

// 给数组修改元素:从2位置开始用("Jeff","David","June")替换("Tom", "Ada")
var arr = ["Amy", "John", "Tom", "Ada", "Alice"];
arr.splice(2,2,"Jeff","David","June");
console.log(arr); // ["Amy", "John", "Jeff", "David", "June", "Alice"]

arr.forEach():遍历数组。

var arr = ["Amy", "John", "Tom", "Ada", "Alice"];

arr.forEach(function(value,key){
 console.log(value,key);
})

// 结果是将数组的值和索引一一遍历出来
Amy 0
John 1
Tom 2
Ada 3
Alice 4

arr.every():检测数值元素的每个元素是否都符合条件。

var arr = [16,22,15,33,38,28];
// 要求:数组中的每个元素的值都必须大于18为true,其余都为假
arr.every(function(value){
 return value > 18;
}) // false

arr.some():检测数组元素中是否有元素符合指定条件。

// 要求:数组中的每个元素都小于18为true,其余都为真
arr.some(function(value){
 return value > 18;
}) // true

arr.map():通过指定函数处理数组的每个元素,并返回处理后的数组。

var arr = [16,22,15,33,38,28];
// 要求:数组中的每个元素的值都必须大于18为true,其余都为假
arr.map(function(value){
 return value + 10;
}) // [26,32,25,43,48,38]

arr.filter():检测数值元素,并返回符合条件所有元素的数组。

var arr = [16,22,15,33,38,28];
// 要求:数组中超过18的元素都被筛选出来
arr.filter(function(value){
 return value > 18;
}) // [22,33,38,28]

Array.isArray():判断是否是一个数组(不支持IE8)。

Array.isArray([1, 2, 3]); // true
Array.isArray({foo: 123}); // false
Array.isArray("foobar"); // false
Array.isArray(undefined); // false

array.reduce(callback,initnum):累加器和数组中的每个元素(从左到右)应用一个函数,将其减少为单个值。

[0, 1, 2, 3, 4].reduce(function(accumulator, currentValue, currentIndex, array){
 return accumulator + currentValue;
}); // 最终结果:10

accumulator:计算值
currentValue: 当前值
currentIndex: 当前索引值
array: 处理的数组
赞(0)
本文章可自由转载、引用,但需署名作者且注明文章出处:Mxue note » js内置对象 – Array数组对象
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址