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[0]); // 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 index = 0; index < length; index++) {
console.log(arr[index]);
}
或者通过forEach方法
var arr = ['mickey', 'nciaer', 'nuonuo'];
arr.forEach(function(v) {
console.log(v);
});
或者通过for in
var arr = ['mickey', 'nciaer', 'nuonuo'];
for(var index in arr) {
console.log(arr[index]);
}
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[arr.length] = 'father';
6,删除数组元素
delete arr[2]; // 即使删除了也会留着位置,值为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)); // [nuonuo]
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的值
11. includes方法,判断数组是否存在某个值
var arr = ['mickey', 'nciaer', 'nuonuo'];
console.log(arr.includes('nciaer')); // true,返回值是true、false
12. indexOf方法,判断数组是否存在某个值,不存在返回-1,存在返回索引。
有关PHP系统、Discuz或网站等各种问题,可以联系QQ1069971363寻求付费支持
|