javascript 数组学习笔记
- 数组的每一项都可以保存任何类型的数据。如字符串,数值,对象。
- 数组的大小是可以动态调整的。
创建数组的方式有如下几种:
//1. 使用构造函数创建
var colors = new Array(20);
var colors = new Array("red","blue");
var colors = Array(20);//省略new
//2. 使用数组字面量的方式构造
var colors = ["red","blue","green"];
var colors = [];//创建空数组
数组的访问:如果索引值小于数组中的项数,则返回对应的值,如果大于,则数组自动增加到索引值加一的长度。
//var colors = new Array(4);
var colors = ["red","blue","green"];
var col = colors[1]; //blue
可以直接修改数组的长度
//colors.length = 3;
//检测是否为数组对象
if(Array.isArray(colors)){
console.log("is array");
}
console.log("\n-----------------","LIFO");
// 栈方法
var count = colors.push("black"); //压栈
console.log("push:",count,colors);
var item = colors.pop(); //出栈
console.log("pop:",item,colors.length,colors);
console.log("\n-----------------","FIFO");
//队列方法
count = colors.push("brown"); //入队
console.log("push:",count,colors);
item = colors.shift();
console.log("shift:",item,colors.length,colors);
console.log("\n-----------------","add,remove");
//操作方法
var myColors = colors.concat("purple",["yellow","silver"]);//数组+参数=>数组
console.log("concat:",myColors);
var tempColors = myColors.slice(1,3);//复制[1,3)索引下的内容到新创建的数组。
console.log("slice:",tempColors);
myColors.splice(0,2);//删除数组中的前两项
console.log("splice:",myColors);
myColors.splice(2,0,"blue");//在位置2添加一项
console.log("splice:",myColors);
myColors.splice(2,1,"green");//在位置2删除一项,然后添加一项
console.log("splice:",myColors);
//迭代方法
console.log("\n-----------------","iterate");
var testData = [1,2,3,4,5,6,7,8];
//对数组中的每个item运行指定函数,如果该函数对每一项都返回true,则返回true.
var res = testData.every(function (item,index,array) {
return item > 2;
})
console.log("every:",res);
//对数组中的每个item运行指定函数,如果该函数对任意一项都返回true,则返回true.
res = testData.some(function (item,index,array) {
return item > 2;
})
console.log("some:",res);
//对数组中的每个item运行指定函数,对返回true的item组成新的数组.
res = testData.filter(function (item,index,array) {
return item > 2;
})
console.log("filter:",res);
//对数组中的每个item运行指定函数.
testData.forEach(function (item,index,array) {
array[index] = item + 1;
})
console.log("forEach:",testData);
//对数组中的每个item运行指定函数.对返回的结果组成新的数组
res = testData.map(function (item,index,array) {
return item + item;
})
console.log("map:",res);
console.log("\n-----------------","reduce");
//归并方法
//从第一项开始遍历到最后.
// 第一次迭代:prev=1, cur=2, index=1
//第二次迭代:prev=3(函数返回的1+2),cur=3, index=2
var testData = [1,2,3,4,5,6,7,8];
var sum = testData.reduce(function(prev, cur, index, array){
return prev + cur;
})
console.log("reduce:",sum);
//reduceRight()方法从最后一项开始遍历到第一项。其他与reduce()一致
console.log("\n-----------------","indexOf");
//位置方法
var colors = ["red","blue","green"];
//返回查找项的索引。接收两个参数:查找项和(可选项)查找起点位置
var index = colors.indexOf("green");
console.log("indexOf:",index);
//lastIndexOf()从末尾向前查找,其余一致。
console.log("\n-----------------","tostring");
//转换方法
var res = colors.toString();
console.log("toString:",res);
var res = colors.toLocaleString();
console.log("toLocaleString:",res);
var res = colors.join(" ");
console.log("join:",res);//使用不同的分隔符来构建字符串
console.log("\n-----------------","sort");
//排序方法
var values = [1,2,3,7,6,5,4];
values.reverse();//反转
console.log("reverse:",values);
//比较函数接收两个参数,如果value1 > value1则返回负数,相等返回0,大于返回正数
function compare(value1, value2){
return value1 - value2;
}
values.sort(compare);
console.log("sort:",values);
关于技术交流
此处后的文字已经和题目内容无关,可以不看。
qq群:825695030
微信公众号:嵌入式的日常
如果上面的文章对你有用,欢迎打赏、点赞、评论。