一、创建数组的方式
var arr = []; //效率更高
var arr1 = new Array(); //参数可以有一个或多个,一个为长度,多个为数组元素;
note:判断是否数组用Array.isArray(arr1); 字符串生成数组:split(“ ”);
function copy() {
var arr=[10,21,32];
var arr1=arr;
arr1[2]=90;
print("arr:", arr);
}
结果为:
[10,21,90]
function deepCopy(arr1, arr2){
for(var i=0;i
1)indexOf(): //有就返回索引,没有就返回-1.如果有多个相同的元素返回第一个的索引,lastIndexOf()返回最后一个的索引.这两个方法同样使用字符串。
2).join()和toString():都是将数组转化为字符串并用逗号隔开各元素,pirnt打印数组自动调用toString()
note:字符串转化成数组用split(‘’)
3)concat()和splice():作为参数的数组连接到调用concat()方法的后面;splice() 第一个参数是数组索引,第二个是要截取的长度;PS:splice() 还有其他用法(删除或添加元素)。
四、可变函数
1)push()和unshift()和splice()
push()在数组末尾添加元素,可以添加多个。PS:也可以用length添加。
var arr=[221,1];
arr.push(21,32);
print(arr); //[221,1,21,32]
arr[arr.lenght]=34;
print(arr); //[221,1,21,32,34]
unshift() 在数组开头添加元素,可以添加多个。
var arr=[22,14,21];
arr.unshift(90); //可以添加多个,arr.unshift[21,432,54]
print(arr); //[90,22,14,21]
var arr=[32,43,56,76,87];
arr.splice(1,0,32,4,55);
print(arr); //[32,32,4,55,43,56,76,87]
arr.splice(3,4);
print(arr); //[32,32,4,87]
function compare(num1, num2){
return num1-num2;
}
var arr=[21,43,54,76,23];
arr.sort(compare);
六、迭代器方法
function square(num){
prit(num, num*num);
}
var arr=[2,3,5,6,7];
arr.foreEach(square);
2、every():返回值为布尔值每一个元素符合
function isEven(num){
return num/2 == 0;
}
var arr=[2,41,60];
arr.every(isEven); //false
3、some():返回值为布尔值,只要有一个元素符合function isEven(num){
return num/2 == 0;
}
var arr=[2,41,60];
arr.some(isEven); //true
4、reduce():接收一个函数,返回一个值
function add(total, newVal){
return total + newVal;
}
var arr=[21,43,32,32,43,65];
arr.reduce(add); //数组个元素之和
recuceRight()
function con(totalStr, newStr){
return totalStr + newStr;
}
var arr=["hello ","computer ", "and ", "you "];
arr.reduceRight(con); //you and computer hello
function add(num){
return num+=5;
}
var arr=[32,43,21,65];
arr.map(add); //每个元素加了5
function first(word){
return word[0];
}
var arr=["you","are","welcome"];
print(arr.map(first).join("")); //yaw,用join的原因是会有逗号
function isEven(num){
return num/2 == 0;
}
var arr=[2,41,60];
arr.filter(isEven); //[2,60]
七、二维数组