导航
const newArr = oldArr.concat(arr1, arr2, ..., arrN)
var arr1 = ['a', 'b', 'c'];
var arr2 = [1, 2, 3];
var arr3 = arr1.concat(arr2);
console.log({
arr1, arr2, arr3
});
const arr = [1].concat([1,2,[2,3]])
console.log(arr); // [ 1, 1, 2, [ 2, 3 ] ]
let a = [1, 2, 3]
let b = [0, ...a, 4, 5]
console.log(a, b); // [ 1, 2, 3 ] [ 0, 1, 2, 3, 4, 5 ]
arr.slice(begin, end)
var arr = [
'Lance',
{
a: {
b: {
c: 3
}
}
}
]
var arr2 = arr.slice()
arr2[1].a.b = 3
console.log(arr, arr2) // [ 'Lance', { a: { b: 3 } } ] [ 'Lance', { a: { b: 3 } } ]
slice(-2)
表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素)。var arr = ['l', 'a', 'n', 'c', 'e'];
var arr1 = arr.slice(-3, -1);
console.log(arr1);
var arr = ['l', 'a', 'n', 'c', 'e'];
var arr1 = arr.slice(-3, 1);
console.log(arr1);
var arr = ['l', 'a', 'n', 'c', 'e'];
var arr1 = arr.slice();
console.log(arr1);
var arr = ['l', 'a', 'n', 'c', 'e'];
var arr1 = arr.slice(10);
console.log(arr1); // []
提取终止处的索引(从 0 开始),在该索引处结束提取原数组元素。slice 会提取原数组中索引从 begin 到 end 的所有元素(包含 begin,但不包含 end)。
slice(1, 4) 会提取原数组中从第二个元素开始一直到第四个元素的所有元素 (索引为 1, 2, 3的元素)。
var arr = ['l', 'a', 'n', 'c', 'e'];
var arr1 = arr.slice(1, 4);
console.log(arr1);
如果该参数为负数, 则它表示在原数组中的倒数第几个元素结束抽取。 slice(-2,-1) 表示抽取了原数组中的倒数第二个元素到最后一个元素(不包含最后一个元素,也就是只有倒数第二个元素)。
var arr = ['l', 'a', 'n', 'c', 'e'];
var arr1 = arr.slice(1, -2);
console.log(arr1);
如果 end 被省略,或者 end 大于数组的长度,则 slice 会一直提取到原数组末尾。
var arr = ['l', 'a', 'n', 'c', 'e'];
var arr1 = arr.slice(3, 10);
console.log(arr1); // ['c', 'e']
arr.join(str)
toString()
方法,如果数组里边还是数组,则继续 toString
[object Object]
const arr = ['1', '2', '3'];
console.log(arr.join()); // 1,2,3 不传参,默认 ',' 连接
console.log(arr.join('')); // 123
console.log(arr.join(',')); // 1,2,3
var arr = ['a', 'b', 'c', 'd', 'e'];
var str1 = arr.join();
console.log(str1);
var str2 = arr.join('');
console.log(str2);
var str3 = arr.join('-');
console.log(str3);
let arr = [
['Lance', 'GC'],
'Jerry'
]
console.log(arr.join());
console.log(arr[0].join());
console.log(arr.join(''));
console.log(arr[0].join(''));
console.log(arr.join('-'));
console.log(arr[0].join('-'));
// 解析
// arr.join() ->
// 第一个元素还是数组,且里边都是基本类型,则对整个数组 toString =>
// ['Lance', 'GC'].toString() => 变成 'Lance,GC' 字符串,再把它和后边 Jerry join =>
// ['Lance,GC', 'Jerry'].join() => 默认逗号隔开 => 'Lance,GC,Jerry'
// arr[0].join() ->
// ['Lance', 'GC'].join() 相当于 ['Lance', 'GC'].join(',')
// 即把数组中两个成员拿出来,用逗号拼接 => 'Lance,GC'
// arr.join('') ->
// 对数组成员用 '' 空字符串拼接,发现第一个成员是个只包含基本类型数据的数组,需要先 toString 一下
// ['Lance', 'GC'].toString() => 'Lance,GC'
// 然后再把 'Lance,GC' 和 'Jerry' join('')一下,就变成了 'Lance,GCJerry'
// arr[0].join('') ->
// ['Lance', 'GC'].join('') => 'LanceGC'
// arr.join('-') ->
// 先对 ['Lance', 'GC'] 执行 toString 变成 'Lance,GC' =>
// 再把 'Lance,GC' 和 'Jerry' 用 '-' 拼接下,变成 'Lance,GC-Jerry'
// arr[0].join('-') ->
// ['Lance', 'GC'].join('-') 变成 'Lance-GC'
let arr = [
{ name: 'Lance', age: 27 },
'Jerry'
]
console.log(arr.join('-'));
// [object Object]-Jerry
split :将字符串按照指定的标识符切割成数组。
var arr = ['a', 'b', 'c', 'd', 'e'];
var str1 = arr.join();
console.log(str1, str1.split(','));
var str2 = arr.join('');
console.log(str2, str2.split(''));
var str3 = arr.join('-');
console.log(str3, str3.split('-', 3));
var str = '123123'
console.log(str.split(''));
console.log(str.split(','));
console.log(str.split('-'));
array.indexOf(searchElement, fromIndex)
undefined
let a=['啦啦', 2, 4, 24, NaN];
console.log(a.indexOf('啦')); // -1
console.log(a.indexOf('NaN')); // -1
console.log(a.indexOf('啦啦')); // 0
let arr = ['Lance'];
console.log(arr.indexOf()); // -1
console.log(arr.indexOf(undefined)); // -1
let arr2 = ['Lance', undefined];
console.log(arr.indexOf()); // 1
console.log(arr.indexOf(undefined)); // 1