js_Array学习

javascript 数组学习笔记

  1. 数组的每一项都可以保存任何类型的数据。如字符串,数值,对象。
  2. 数组的大小是可以动态调整的。

创建数组的方式有如下几种:

//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
微信公众号:嵌入式的日常
如果上面的文章对你有用,欢迎打赏、点赞、评论。二维码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

theboynoName

感谢鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值