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)