JS数组学习笔记整理

数组的创建

var arr = new Array();
var arr = new Array(size);  
var arr = new Array([element]); //var arr = new Array(1,2,3);

常用的还是数组的语法糖形式

var arr =[];

访问

arr[index] //下标从0开始

var arr = [1,2,3];
console.log(arr[2]); //3

arr.indexOf(element)
功能:搜索一个指定的元素的位置
参数:元素
返回值:元素的位置/下标
var arr = [1,2,3];
console.log(arr); //[1,2,3]
var index = arr.indexOf(3); 
console.log(index); // 2
console.log(arr); //[1,2,3]

添加

arr.push()
功能:向数组的末尾添加一个或者多个元素
参数:一个或者多个元素
返回值:元素添加到数组后的新长度

var arr = [1,2,3];
console.log(arr); //[1,2,3]
var newLength = arr.push(4); 
console.log(newLength); //4
console.log(arr); //[1,2,3,4]

arr.unshift()
功能:向数组的开头添加一个或者多个元素
参数:一个或者多个元素
返回值:元素添加到数组后的新长度
var arr = [1,2,3];
console.log(arr); //[1,2,3]
var newLength = arr.unshift(4); 
console.log(newLength); //4
console.log(arr); //[4,1,2,3]

删除

arr.pop()
功能:从数组的末尾删除一个元素
参数:无
返回值:删除的元素

var arr = [1,2,3];
console.log(arr); //[1,2,3]
var newLength = arr.pop(); 
console.log(newLength); //3
console.log(arr); //[1,2]

arr.shift()
功能:从数组的开头删除一个元素
参数:无
返回值:删除的元素
var arr = [1,2,3];
console.log(arr); //[1,2,3]
var newLength = arr.shift(); 
console.log(newLength); //1
console.log(arr); //[2,3]
连接(合并)

arr.concat()
功能:在数组的尾部添加元素或者数组
参数:可以是元素,也可以是数组
返回值:添加后的数组

var arr = [1,2,3];
console.log(arr); //[1,2,3]
var newArr = arr.concat(4); 
console.log(newArr); //[1,2,3,4]
console.log(arr); //[1,2,3]
var arr = [1,2,3];
console.log(arr); //[1,2,3]
var newArr = arr.concat([4,5]); 
console.log(newArr); //[1,2,3,4,5]
console.log(arr); //[1,2,3]
var arr = [1,2,3];
console.log(arr); //[1,2,3]
var newArr = arr.concat(4,5); 
console.log(newArr); //[1,2,3,4,5]
console.log(arr); //[1,2,3]

排序

arr.reverse()
功能:反转数组,改变数组元素位置
参数:无
返回值:反转后的数组

var arr = [1,2,3];
console.log(arr); //[1,2,3]
var newArr = arr.reverse(); 
console.log(newArr); //[3,2,1]
console.log(arr); //[3,2,1]
arr.sort()
功能:数组排序,会修改数组的元素位置,直接调用按照默认顺序ASCII码进行排序
参数:函数
通常规定,对于两个元素x和y,如果认为x < y,则返回-1,
如果认为x == y,则返回0,
如果认为x > y,则返回1
返回值:反转后的数组

var arr = [1,20,10,2];
console.log(arr.sort()); //[1,10,2,20]
var t = arr.sort(function(x, y){
	if (x > y) {
        return 1;
    }
    if (x < y) {
        return -1;
    }
    return 0;
});
console.log(t); // [1, 2, 10, 20]

//按照字母顺序排序,忽略大小写
var arr = ['Google', 'apple', 'Microsoft'];
arr.sort(function (s1, s2) {
    x1 = s1.toUpperCase();
    x2 = s2.toUpperCase();
    if (x1 < x2) {
        return -1;
    }
    if (x1 > x2) {
        return 1;
    }
    return 0;
}); // ['apple', 'Google', 'Microsoft']

截取

arr.slice(start, end)
功能:数组的截取
参数:开始位置和结束位置,可以为负数
返回值:截取到的数组,包含start不包含end

var arr = [1,2,3];
console.log(arr); //[1,2,3]
var newArr = arr.slice(0,2); 
console.log(arr.slice(0));//[1,2,3] 可以用来复制一个数组
console.log(arr.slice(-2, -1)); //[2]
console.log(newArr); //[1,2]
console.log(arr); //[1,2,3]</span><span style="font-size: 18px;">
字符串化

arr.toString()
功能:数组转化为字符串
参数:无
返回值:转化后的字符串
var arr = [1,2,3];
console.log(arr); //[1,2,3]
var str = arr.toString(); 
console.log(str); // 1,2,3
console.log(arr); //[1,2,3]
arr.join(separator)
功能:连接数组所有元素为一个分隔符分割的字符串
参数:分隔符
返回值:连接后的字符串
var arr = [1,2,3];
console.log(arr); //[1,2,3]
var str = arr.join(); 
console.log(str); // 1,2,3
console.log(arr.join('-'));// 1-2-3
console.log(arr); //[1,2,3]

遍历

var arr = ['Google', 'apple', 'Microsoft'];
for (var i = 0; i < arr.length; i++) {
	console.log(arr[i]);
};
万能方法
arr.splice()
功能:方法是修改Array的“万能方法”,它可以从指定的索引开始删除若干元素,
然后再从该位置添加若干元素
参数:位置 删除个数 添加的元素
返回值:返回删除的元素
var arr = ['Microsoft', 'Apple', 'Yahoo', 'AOL', 'Excite', 'Oracle'];
// 从索引2开始删除3个元素,然后再添加两个元素:
arr.splice(2, 3, 'Google', 'Facebook'); // 返回删除的元素 ['Yahoo', 'AOL', 'Excite']
arr; // ['Microsoft', 'Apple', 'Google', 'Facebook', 'Oracle']
// 只删除,不添加:
arr.splice(2, 2); // ['Google', 'Facebook']
arr; // ['Microsoft', 'Apple', 'Oracle']
// 只添加,不删除:
arr.splice(2, 0, 'Google', 'Facebook'); // 返回[],因为没有删除任何元素
arr; // ['Microsoft', 'Apple', 'Google', 'Facebook', 'Oracle']



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值