nciaer 发表于 2019-6-3 14:45:13

javascript数组学习总结

1,创建数组
var arr = ['hello', 'world', 123]; // 数组文本方法创建一个有三个元素的数组
或者
var arr = new Array('hello', 'world', 123); // new 方法,推荐第一种
var arr = new Array(5); // 这种就是创建一个数组,里面有5个undefined的值

注意,typeof [] 返回的是object,也就是说数组是对象,如何区分数组和对象呢?
1,自定义函数
function isArray(x) {
    return x.constructor.toString().indexOf("Array") > -1;
}
2,系统函数,es5支持
Array.isArray(arr);


2,访问数组
var arr = ['hello', 'world', 123]; // 数组文本方法创建一个有三个元素的数组
console.log(arr); // hello 访问数组的第一个元素
console.log(arr); // 直接输出数组,那么输出的是hello,world,123,逗号分隔的字符串,跟arr.toString()效果一样

3,获取数组的长度
console.log(arr.length); // 3,通过length属性

4,遍历数组元素
var arr = ['mickey', 'nciaer', 'nuonuo'];
var length = arr.length;
for(var i = 0; i < length; i++) {
    console.log(arr);
}
或者通过forEach方法
var arr = ['mickey', 'nciaer', 'nuonuo'];
arr.forEach(function(v) {
    console.log(v);
});
或者通过for in
var arr = ['mickey', 'nciaer', 'nuonuo'];
for(var i in arr) {
    console.log(arr);
}

4,join方法,把数组转为字符串
var arr = ['mickey', 'nciaer', 'nuonuo'];
console.log(arr.join(' and ')); // mickey and nciaer and nuonuo

5,数组的栈操作
var arr = ['mickey', 'nciaer', 'nuonuo'];
console.log(arr.push('mother', 'father')); // 5, push向数组末尾添加数据,返回新数组长度
console.log(arr.pop()); // 弹出数组最后一个元素并返回
console.log(arr.shift()); // 删除数组第一个元素并返回
console.log(arr.unshift('mickey')); // 在数组开头添加元素,并返回新数组的长度

向数组添加元素的简单方法可以用length属性,如
arr = 'father';

6,删除数组元素
delete arr; // 即使删除了也会留着位置,值为undefined

7,拼接数组splice,他的原型是splice(插入位置, 删除个数, 插入元素1, 插入元素2, ...) 返回被删除的元素,如:
var arr = ['mickey', 'nciaer', 'nuonuo'];
var rs = arr.splice(0, 0, 'mother', 'father');
console.log(rs); // 没有元素被删除,返回[]
console.log(arr); ['mother', 'father', 'mickey', 'nciaer', 'nuonuo']

8,通过splice删除数组元素,不留空值
var arr = ['mickey', 'nciaer', 'nuonuo'];
console.log(arr.splice(2, 1)); //
console.log(arr); // ['mickey', 'nciaer']

9,通过concat拼接数组
var arr = ['mickey', 'nciaer', 'nuonuo'];
var arr2 = ['mother', 'father'];
console.log(arr.concat(arr2, 'aaa')); //  ["mickey", "nciaer", "nuonuo", "mother", "father", "aaa"],返回的新数组,不改变原来的

10,slice方法,剪裁数组,其实就是获取子数组
var arr = ['mickey', 'nciaer', 'nuonuo'];
console.log(arr.slice(1, 3)); // ['nciaer, nuonuo'] 返回从索引1到索引3的值,不包括索引3的值
页: [1]
查看完整版本: javascript数组学习总结