数组
- 所有数组都继承于Array.prototype,所以数组都有
push,shift,unshift
方法
var arr = []; // 数组字面量
var arr2 = new Array(); // 系统提供构造函数
var arr3 = Array(); // 不使用
console.log(arr.__proto__.constructor); // Array()
console.log(arr2.__proto__.constructor);// Array()
console.log(arr3.__proto__.constructor);// Array()
const obj = {}; // 对象字面量
const obj2 = new Object(); // 系统提供的构造函数
const obj3 = Object(); // 不使用
console.log(obj.__proto__.constructor);
console.log(obj2.__proto__.constructor);
console.log(obj3.__proto__.constructor);
const arr = [,,,1,,3];
const arr2 = new Array(,,1,2); // 会报错,不允许写稀松数组
new Array()
的第一个参数如果为纯数字,是设置数组的长度。如果是其他元素,则设置为数组的第一个元素。
const arr3 = new Array(5); // [empty * 5]
const arr3 = new Array(5.2); // 报错
const arr4 = new Array('a'); // ['a']
push
arr.push(1)
| arr.push(1,2,3)
- 向数组末尾添加一个元素
- 改变原数组
- 返回值:添加后的数组长度
unshift
arr.unshift(1)
| arr.unshift(1,2,3)
- 向数组头部添加元素
- 改变原数组
- 返回值:数组长度
pop
arr.pop()
- 删除数组末尾元素
- 改变原数组
- 返回值:数组末尾元素
shift
arr.shift()
- 删除数组头部元素
- 改变原数组
- 返回值:数组头部元素
splice
arr.splice(开始的下标, 删除几个, 要添加的元素)
- 删除或者添加元素
- 删除元素
arr.splice(1,0)
- 新增元素
arr.splice(1,0,999,999)
- 删除后新增元素
arr.splice(1,1,888,888,888)
数组首先删除第一位的元素,然后将888,888,888添加到第一位
- 当一个参数为 负数 时,即从数组从后向前计算
- 改变原数组
- 返回值: 被删除的元素形成的数组
toString()
slice()
- 不改变原数组
- 对数组进行切片,[截取包含开始下标, 结束下标之前] 的元素
const arr = [0, 1, 2, 3, 4, 5];
arr.slice(); // [0, 1, 2, 3, 4, 5]
const arr = [0, 1, 2, 3, 4, 5];
arr.slice(); // [1, 2, 3, 4, 5]
const arr = [0, 1, 2, 3, 4, 5];
arr.slice(1, 3); // [1, 2]
const arr = [0, 1, 2, 3, 4, 5];
arr.slice(-3, 5) // [3, 4]
join
arr.join()
默认将字符串用逗号分隔,添加参数后,会使用参数将元素分隔
- 不改变原数组
split
- 两个参数,(1)分隔符 (2)截取几位
arr.split()
使用参数将字符串分隔成数组
- 不改变原数组
数组排序方法
sort
- 排列数组
- 解析:
arr.sort()
无参数时,sort方法是按照 'ASCII'码进行排列
arr.sort((a, b) => a- b)
是按照返回的值的正负来决定顺序的。 如果返回值是正数,将a放在前面,如果返回值是负数,b放在前面。
// 实现过程
const arr = [1, 2, 21, 31, 4];
arr.sort(function (a, b) {
if (a > b) {
return 1;
} else {
return -1
}
});
QA:实现数组随机进行排列
const arr = [1, 2, 34, 56];
arr.sort(() => Math.random() - 0.5 > 0 ? 1 : -1);
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
- 找不到素材资源介绍文章里的示例图片?
- 对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
- 模板不会安装或需要功能定制以及二次开发?
- 请QQ联系我们
发表评论
还没有评论,快来抢沙发吧!