打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Javascript[0x01] -- 数组(一)
userphoto

2023.02.03 浙江

关注
相比于其他语言的数组,Javascript中的数组条条框框约束较少。
一、有关数组的相关API
1.1、数组方法
方法名描述
concat连接两个或更多数组,并返回结果
every对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true
filter对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组
forEach对数组中的每一项运行给定函数。这个方法没有返回值
join将所有的数组元素连接成一个字符串
indexOf返回第一个与给定参数相等的数组元素的索引,没有找到则返回-1
lastIndexOf返回在数组中搜索到的与给定参数相等的元素的索引里最大的值
map对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组
reverse颠倒数组中元素的顺序,原先第一个元素现在变成最后一个,同样原先的最后一个元素变成了现在的第一个
slice传入索引值,将数组里对应索引范围内的元素作为新数组返回
some对数组中的每一项运行给定函数,如果任一项返回true,则返回true
sort按照字母顺序对数组排序,支持传入指定排序方法的函数作为参数
toString将数组作为字符串返回
valueOf和toString类似,将数组作为字符串返回
1.2、ES6和ES7新加的
方 法描 述
@@iterator返回一个包含数组键值对的迭代器对象,可以通过同步调用得到数组元素的键值对
copyWithin复制数组中一系列元素到同一数组指定的起始位置
entries返回包含数组所有键值对的@@iterator
includes如果数组中存在某个元素则返回true,否则返回false。ES7新增
find根据回调函数给定的条件从数组中查找元素,如果找到则返回该元素
findIndex根据回调函数给定的条件从数组中查找元素,如果找到则返回该元素在数组中的索引
fill用静态值填充数组
from根据已有数组创建一个新数组
keys返回包含数组所有索引的@@iterator
of根据传入的参数创建一个新数组
values返回包含数组中所有值的@@iterator
具体的还是去看书本或者一些文档吧,这里就是简单地踩个点,那么我们直接进入到问题思考环节。
二、问题思考
2.1、Javascript中支持二维数组和多维数组吗? 如果不支持请封装一个函数实现支持
JavaScript本身并不支持二位数组和多维数组,只支持一维数组。但是我们可以像叠罗汉一样,数组加数组来符合预期。
可以看下我封装的例子createMoreMaxtrix:
// 也没看见过三维之外的存在啊,这里就三维吧
function createMoreMaxtrix(dim, num) {
var arr = new Array(num);
switch (dim) {
case 1 :
console.log("一维");
return arr.fill(null);
break;
case 2:
console.log("二维");
for(var i = 0; i < num; i++) {
arr[i] = [];
for(var j = 0; j < num; j++) {
arr[i][j] = null;
}
}
return arr;
break;
case 3:
console.log("三维");
for(var i = 0; i < num; i++) {
arr[i] = [];
for(var j = 0; j < num; j ++) {
arr[i][j] = [];
for(var k = 0; k < num; k++) {
arr[i][j][k] = null;
}
}
}
return arr;
break;
}
}
var arr = createMoreMaxtrix(3, 10);
console.log(arr);2.2、toString()和toLocalelString()的区别
toString()就是把数组转换成字符串,toLocaleString()也是转换成字符串,但是如果是数字的话,它会以“,”帮你标好千分位
var fibonacci = [];
fibonacci[0] = fibonacci[1] = 1;
for(var i = 2; i < 50; i++) {
fibonacci[i] = fibonacci[i-1] + fibonacci[i - 2];
}
console.log(fibonacci.toLocaleString());
console.log(fibonacci.toString()); 这里依稀记得,用C++写的时候,王跃学长不忘提醒我,int、long int和float的区别 ,斐波那契数列关于精度丢失的问题。
2.3、创建数组的方式
var arr1 = [];
var arr2 = new Array()
var arr3 = new Array(7)
var arr4 = [1, 2, 3];
var arr5 = new Array(1, 2, 3)2.4、哪些数组方法会改变原数组?
splice()、reverse()、fill()、copyWithin()、sort()、push()、pop()、unshift()、shift()
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
JavaScript基础案例篇(题目附代码)
JavaScript基础
「学习笔记」JavaScript基础
20个对JavaScript 开发人员的超级有用的技巧
浅谈JS数组内置遍历方法有哪些和区别
Javascript权威指南与高级编程要点记录
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服