请选择 进入手机版 | 继续访问电脑版

硬汉工作室

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 533|回复: 0

javascript数组学习总结

[复制链接]

97

主题

108

帖子

2613

积分

管理员

硬汉工作室创始人

Rank: 9Rank: 9Rank: 9

积分
2613
QQ
发表于 2019-6-3 14:45:13 | 显示全部楼层 |阅读模式
1,创建数组
var arr = ['hello', 'world', 123]; // 数组文本方法创建一个有三个元素的数组
或者
var arr = new Array('hello', 'world', 123); // new 方法,推荐第一种
var arr = new Array(5); // 这种就是创建一个数组,里面有5个undefined的值

注意,typeof [] 返回的是object,也就是说数组是对象,如何区分数组和对象呢?
1,自定义函数
function isArray(x) {
    return x.constructor.toString().indexOf("Array") > -1;
}
2,系统函数,es5支持
Array.isArray(arr);


2,访问数组
var arr = ['hello', 'world', 123]; // 数组文本方法创建一个有三个元素的数组
console.log(arr[0]); // hello 访问数组的第一个元素
console.log(arr); // 直接输出数组,那么输出的是hello,world,123,逗号分隔的字符串,跟arr.toString()效果一样

3,获取数组的长度
console.log(arr.length); // 3,通过length属性

4,遍历数组元素
var arr = ['mickey', 'nciaer', 'nuonuo'];
var length = arr.length;
for(var i = 0; i < length; i++) {
    console.log(arr[i]);
}
或者通过forEach方法
var arr = ['mickey', 'nciaer', 'nuonuo'];
arr.forEach(function(v) {
    console.log(v);
});
或者通过for in
var arr = ['mickey', 'nciaer', 'nuonuo'];
for(var i in arr) {
    console.log(arr[i]);
}

4,join方法,把数组转为字符串
var arr = ['mickey', 'nciaer', 'nuonuo'];
console.log(arr.join(' and ')); // mickey and nciaer and nuonuo

5,数组的栈操作
var arr = ['mickey', 'nciaer', 'nuonuo'];
console.log(arr.push('mother', 'father')); // 5, push向数组末尾添加数据,返回新数组长度
console.log(arr.pop()); // 弹出数组最后一个元素并返回
console.log(arr.shift()); // 删除数组第一个元素并返回
console.log(arr.unshift('mickey')); // 在数组开头添加元素,并返回新数组的长度

向数组添加元素的简单方法可以用length属性,如
arr[arr.length] = 'father';

6,删除数组元素
delete arr[2]; // 即使删除了也会留着位置,值为undefined

7,拼接数组splice,他的原型是splice(插入位置, 删除个数, 插入元素1, 插入元素2, ...) 返回被删除的元素,如:
var arr = ['mickey', 'nciaer', 'nuonuo'];
var rs = arr.splice(0, 0, 'mother', 'father');
console.log(rs); // 没有元素被删除,返回[]
console.log(arr); ['mother', 'father', 'mickey', 'nciaer', 'nuonuo']

8,通过splice删除数组元素,不留空值
var arr = ['mickey', 'nciaer', 'nuonuo'];
console.log(arr.splice(2, 1)); // [nuonuo]
console.log(arr); // ['mickey', 'nciaer']

9,通过concat拼接数组
var arr = ['mickey', 'nciaer', 'nuonuo'];
var arr2 = ['mother', 'father'];
console.log(arr.concat(arr2, 'aaa')); //  ["mickey", "nciaer", "nuonuo", "mother", "father", "aaa"],返回的新数组,不改变原来的

10,slice方法,剪裁数组,其实就是获取子数组
var arr = ['mickey', 'nciaer', 'nuonuo'];
console.log(arr.slice(1, 3)); // ['nciaer, nuonuo'] 返回从索引1到索引3的值,不包括索引3的值
Discuz插件商店:http://addon.dismall.com/?@56030.developer
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|硬汉工作室 ( 冀ICP备13021567号-9 )

GMT+8, 2019-11-20 06:41 , Processed in 0.050652 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表