['abc', 1, true, undefined]
,这点也不同于 C/C++/Java。
2. 创建数组
2.1 数组字面量创建数组
创建空数组let arr = [];
创建一般数组let arr = [1, 2, 3];
2.2 new Array 创建数组对象
创建空数组
let arr = new Array();
创建指定长度的数组,有2个空数组元素
let arr1 = new Array(2);
创建放有指定元素的数组([2, 3])
let arr2 = new Array(2, 3);
一些示例
let arr_0 = [1, true, "aaa"];
let arr_1 = [];
let arr_2 = new Array(); // []
let arr_3 = new Array(2); // [empty × 2]
let arr_4 = new Array(2,); // [empty × 2]
let arr_5 = new Array(2, 3, 4); // [2, 3, 4]
3. 基本 *** 作
数组元素访问
let e = arr[index];
获取数组长度
let len = arr.length;
数组遍历
方式一:
for (let i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
方式二:
for (const i in arr) {
console.log(arr[i]);
}
数组逆转
// 反转数组
function reverse(arr) {
let res = [];
for (let i = arr.length - 1; i >= 0; i--) {
res[res.length] = arr[i];
}
return res;
}
console.log(reverse([1, 2, 3, 4, 0])); // [0, 4, 3, 2, 1]
4. 检测一个值是否为数组
4.1 instanceof
function isArray(test) {
if (test instanceof Array) return true;
return false;
}
console.log(isArray([1, 2])); // true
console.log(isArray(1)); // false
4.2 Array.isArray()
Array.isArray() 方法用于检测一个值是否为数组。
5. 添加删除数组元素的方法方法名 | 说明 | 返回值 |
---|---|---|
push(arg1,...) | 末尾添加一个或多个元素 | 返回新的长度 |
pop() | 删除数组最后一个元素,数组长度减 1,无参数,修改了原数组 | 返回所删除元素的值 |
unshift() | 向数组的开头添加一个或多个元素,修改了原数组 | 返回新的长度 |
shift() | 删除数组的第一个元素,数组长度减 1,无参数,修改了原数组 | 返回第一个元素的值 |
方法名 | 说明 | 是否修改原数组 |
---|---|---|
reverse() | 颠倒数组中元素顺序,无参数 | 会改变原数组,返回新数组 |
sort() | 对数组的元素进行排序 | 会改变原数组,返回新数组 |
sort
方法对数组进行原地排序,但是默认按照字典序排序。需要传入一个比较函数 cmp(a, b)
,然后得到我们需要的排序效果。
let arr = [1, 4, 17, 12, 9];
arr.sort();
console.log(arr); // [ 1, 12, 17, 4, 9 ]
let cmp = (a, b) => a - b;
arr.sort(cmp);
console.log(arr); // [ 1, 4, 9, 12, 17 ]
其中,let cmp = (a, b) => a - b;
为升序,b - a
为降序。
方法名 | 说明 | 返回值 |
---|---|---|
indexOf() | 数组中查找指定元素的 第一个索引 | 若存在则返回索引号,否则返回 -1 |
latsIndexOf() | 查找指定元素在数组中的 最后一个的索引 | 若存在则返回索引号,否则返回 -1 |
indexOf
前面开始查找,lastIndexOf
从后面开始查找,但索引都是从前往后由 0
算起。
let arr = ['red', 'green', 'blue', 'pink', 'blue'];
console.log(arr.indexOf('blue')); // 2
console.log(arr.lastIndexOf('blue')); // 4
console.log(arr.indexOf('yellow')); // -1
8. 数组去重
// 数组去重
function unique(arr) {
let res = [];
for (let i = 0; i < arr.length; i++) {
if (res.indexOf(arr[i]) === -1) {
res.push(arr[i]);
}
}
return res;
}
console.log(unique([ 2, 3, 3, 4, 5, 5 ])); // [ 2, 3, 4, 5 ]
9. 数组与字符串互转
9.1 数组转换为字符串
方法名 | 说明 | 返回值 | 是否改变原数组 |
---|---|---|---|
toString() | 将数组转换成字符串,逗号分隔每一个 | 返回一个字符串 | 不改变 |
join('分隔符') | 把数组中的所有元素转换为一个字符串,以指定符号分割 | 返回一个字符串 | 不改变 |
示例
let a = ['a', 'b', 'c', 'd', 'e'];
console.log(a.toString()); // a,b,c,d,e
console.log(a.join('')); // abcde
console.log(a.join('-')); // a-b-c-d-e
console.log(a); // [ 'a', 'b', 'c', 'd', 'e' ]
9.2 字符串转换为数组
使用 split()
方法。
let str = 'blue-green-pink-red';
let res = str.split('-');
console.log(res); // [ 'blue', 'green', 'pink', 'red' ]
10. 数组方法 splice
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)