js对数组的操作总结

1、创建数组

// var arr = new Array();
// 或
// var arr = [];

var arr = ['张三','李四','周五','赵三','孙武']

2、遍历

for( var i = 0; i < arr.length; i++){
    console.log(arr[i]);
}


$.each(arr,function(index,item){
    console.log(item)
})

3、数组长度

console.log(arr.length);

4、数组中添加新元素

var arr = ['张三','李四','周五','赵三','孙武'];
console.log(arr);

arr[arr.length] = '欧阳';
console.log(arr);

 unshift():在数组第⼀个元素的前⾯增加⼀个元素,数组的长度加1。

var arr = ['张三','李四','周五','赵三','孙武'];
console.log(arr);

arr.unshift('黄药师');
console.log(arr);


push()在数组结尾处追加元素(可以追加多个元素)原来数组的长度也随之改变。 

var arr = ['张三','李四','周五','赵三','孙武'];
console.log(arr);

arr.push('黄药师');
console.log(arr);


注意:追加的元素最好是简单类型的字⾯量,不要是数组,如果是数组的,追加过来的元素会在该位置显⽰为⼀个数组,元素就会变成了⼆维数组,甚⾄多维数组。
 

5、数组替换原数组元素

arr[0] = '黄药师';
console.log(arr);

6、数组求和

var arrNum = [2,5,3,1,9,7,8,5,6];
var sum = 0; // 和 初始值
for(var i=0;i<arrNum.length;i++){
    sum += arrNum[i];
}

7、删除数组中的元素

var arr = [1,2,3,4,5,6,7,8,9,10];

delete:删除的只是数组元素的值,所占的空间是没有被删除的。

var arr = [1,2,3,4,5,6,7,8,9,10];
console.log(arr.length);
console.log(arr);
delete arr[1];
console.log(arr);
console.log(arr[1]);
console.log(arr.length);

delete arr[1]执行后,数组的长度不变。被删除的元素位置还存,读取arr[1]时值为undefined。

splice:是删除数组的指定元素,并且可以给数组添加新的元素,(可直接删除,或者替换数组的某项元素)。

splice(下角标,要删除元素长度,替换的新元素)

var arr=[1,2,3,4,5,6,7,8,9,10];
console.log(arr.length);
arr.splice(1,2);//从下标为1的元素开始删除,删除的长度为2即2,3两个数
console.log(arr);
console.log(arr.length);

 原数组中的2,3被删除了,数组长度由10变成8。

注意:如果不添加替换的新元素,就是数组的删除,会改变原数组的长度

shift:是删除数组的第⼀个元素,无需传参,数组的长度减1,返回被删除的第⼀个元素;
执行arr.shift()如下:

var arr=[1,2,3,4,5,6,7,8,9,10];
console.log(arr.length);
console.log(arr);
var a = arr.shift();
console.log(a);
console.log(arr);
console.log(arr.length);


注意:如果数组是空的,那么 shift() ⽅法将不进⾏任何操作,返回 undefined 值。

 
pop:删除数组的最后⼀个元素,数组的长度会减1,并且返回的是数组的最后⼀个元素(通过alert()可以查看出返回的是哪个值)

执行 arr.pop()如下:

var arr=[1,2,3,4,5,6,7,8,9,10];
console.log(arr.length);
console.log(arr);
var a = arr.pop();
console.log(a);
console.log(arr);
console.log(arr.length);


8、数组排序:
sort():该⽅法是对数组进⾏升序排序,规则是按ascii表的规则来的
执行arr.sort()如下:

var arr = [3,2,1,4,8,7,6,5,9];
console.log(arr);

arr = arr.sort();
console.log(arr);


reverse():对数组进⾏翻转操作
执行arr.reverse()如下:

var arr = [3,2,1,4,8,7,6,5,9];
console.log(arr);

arr = arr.reverse();
console.log(arr);


js模拟原理实现的代码:

var arr = ['张三','李四','周五','赵三','孙武',"黄药师","老顽童"];

// 思路:第一位和最后一位交换位置(以此类推)

for(var i=0;i<arr.length/2;i++){

    var temp = arr[i];

    // 前项数据和对应后项数据交换 (arr.length-1-i = 倒数第i+1项)
    
    arr[i] = arr[arr.length-1-i];
    
    arr[arr.length-1-i] = temp;
			
    console.log(i+'和'+(arr.length-1-i)+'换,即'+arr[i]+'和'+arr[arr.length-1-i]+'换');

}

console.log(arr);

9、检测是否为数组


 arr.isArray(obj):用确定传递的值是否为Array,是Array返回的则是true,否则返回的是false。

intanceof 同样也是检测使⽤的,返回的值是true or false;


10、其他⽅法:
slice():是从数组中截取一个新数组,不影响原数组。
arr.slice(star,end)

start:规定从何处开始选取。如果该参数为负数,则表示从原数组中的倒数第几个元素开始提取,slice(-2) 表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素)

end:规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果该参数为负数, 则它表示在原数组中的倒数第几个元素结束抽取。 slice(-2,-1) 表示抽取了原数组中的倒数第二个元素到最后一个元素(不包含最后一个元素,也就是只有倒数第二个元素)

var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];

// 截取倒数第三个(包含)到倒数第一个(不包含)的两个元素

var myBest = fruits.slice(-3,-1);
console.log(myBest)

// 截取最后三个元素
var myBest2 = fruits.slice(-3);
console.log(myBest2)


注意:如果slice⾥⾯没有定义结束的位置的话,那么截取的元素就从被截取元素的开始位置⼀直截取到结束位置

 
arr.join():把数组转换成为字符串。

可自定义分隔符,如&: arr.join("&");

默认是逗号隔开;

若无需分隔符则使用arr.join("");

var arr = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
console.log(arr)

// 自定义分隔符&	
var a = arr.join("&");
console.log(a)

// 默认逗号隔开
var b = arr.join();
console.log(b)

// 若无需分隔符,就使用arr.join("")
var c = arr.join("");
console.log(c)


arr.toString():同样是把数组转成字符串,但是返回的字符串每项都是⽤逗号隔开的

var arr = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
console.log(arr)
		
var a = arr.toString();
console.log(a)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值