var arr1 = [1, 2];
var arr2 = [3, 4];
var arr3 = arr1.concat(arr2);
console.log(arr3, arr1, arr2);
2、toString()
将数组转换为字符串返回值:返回新字符串,转换成的字符串
var arr = [1, 2, 3];
console.log(arr, arr.toString()); // [1, 2, 3] '1,2,3'
3、slice
无参数时: 新建数组有参数时:
有一个参数时:从该参数开始截取(包含该参数),一直截取到末尾有两个参数时:从第一个参数开始截取(包含该参数),一直截取到第二个参数的位置(不包含该参数)
var arr = [1, 2, 3, 4, 5];
arr.slice(); // [1, 2, 3, 4, 5]
arr.slice(1, 3); // [2, 3]
arr.slice(-3, -1); // [3, 4]
4、join跟split
join
用法:以他的参数把数组分割为字符串返回值:返回一个新数组,分割后的字符串
var arr = [1, 2, 3];
console.log(arr.join()); // 1,2,3
console.log(arr.join('')); // 123
console.log(arr.join('-')); // 1-2-3
split
用法:将字符串以他的参数为分隔符转换成数组参数:
第一个参数:分隔符第二个参数:分割后数组的长度(length) 返回值:返回一个新数组,字符串分割成的数组
var arr = [1, 2, 3];
var str = arr.join('-');
console.log(str); // '1-2-3'
var arr1 = str.split('-', 1);
console.log(arr1); // [1]
二、类数组
1、什么是类数组
argumentsDOM方法:document.getElementsByTagName(‘div’)
function test() {
arguments.push(3); // 报错
}
test(1,2,3);
他两都没有push方法,说明他们没有继承Array.prototype
,他们叫做类数组
对象更改为类数组方式:
对象上有length属性(数组的特性,下标为数组特性的)继承Array的任意方法var obj = {
'0': 1,
'1': 2,
'length': 2
}
console.log(obj); // {...}
// 类数组
var obj2 = {
'0': 1,
'1': 2,
'length': 2,
'splice': Array.prototype.splice
}
console.log(obj2); //[...]
3、类数组面试题(阿里)
var obj = {
'2': 3,
'3': 4,
'length': 2,
'splice': Array.prototype.splice,
'push': Array.prototype.push
}
obj.push(1);
obj.push(2);
console.log(obj);
// 分析:obj[2] = 1; obj[3] = 2;
// 所以输出:[empty * 2, 1, 2 ....]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)