绪论
本篇文章主要记录有关js数组的一些操作方法。
- 类型判断。
- 数组转字符串。
- 翻转数组。
- 数组排序。
- 数组链接。
- 数组截取,替换。
- 索引位置。
- every遍历,每次为true,结果为true。
- filter过滤器。
- forEach循环。
- some遍历,一次为true,结果为true。
- 数组清空。
正文
<!DOCTYPE html>
<div lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>index</title>
<script src="js/jquery-2.2.4.min.js"></script>
<style>
</style>
</head>
<body>
</body>
<script>
$(document).ready(function () {
array();
});
function array () {
var arr = [7, 2, 1, 6, 4];
var num = 123;
// 检测一个对象是否为数组,简单数据类型用typeof
console.log('arr是数组吗?' + (arr instanceof Array));
console.log('num是数组吗?' + (num instanceof Array));
console.log('arr是数组吗?' + Array.isArray(arr));
console.log('num是数组吗?' + Array.isArray(num));
// join数组变字符串
console.log('数组变字符串:' + arr.toString());
console.log('数组变字符串:' + arr.join());
console.log('数组变字符串:' + arr.join(','));
// reverse翻转数组
console.log('翻转数组:' + arr.reverse());
// sort数组排序
console.log('数组排序:' + arr.sort());
// 数组排序 - 降序(b - a),升序(a - b)
console.log('数组排序 - 降序:' + arr.sort(function(a, b) {return b - a}));
var arr1 = [1, 9, 3];
// concat数组链接
console.log('数组链接:' + arr.concat(arr1));
// splice数组截取
console.log('数组截取,从索引值3开始到最后:' + arr.splice(3));
arr = [7, 2, 1, 6, 4];
console.log('数组截取,从索引值1开始获取三个元素:' + arr.splice(1, 3));
// 由于数组截取之后原数组中元素会消失,所以再次使用已经没有数据,所以不展示
console.log('数组截取,获取最后2位:' + arr.splice(-2));
arr = [7, 2, 1, 6, 4];
console.log('数组截取,获取最后2位:' + arr.splice(-2));
// 数组替换
arr = [7, 2, 1, 6, 4];
arr.splice(1, 2, 'aaa');
console.log('数组截取,删除指定并替换:' + arr.toString());
// indexOf/lastIndexOf索引位置,没有则返回-1
arr = [7, 2, 1, 6, 4, 7, 2, 1, 6, 4];
console.log('索引位置,第一次出现:' + arr.indexOf(1));
console.log('索引位置,最后出现:' + arr.lastIndexOf(1));
arr = [7, 2, 1];
// every数组遍历,规则:c[b] = a
// 每次结果都返回true,every最后才返回true,失败就结束
arr.every(function(a, b, c) {
console.log('数组遍历,元素:' + a);
console.log('数组遍历,索引:' + b);
console.log('数组遍历,本身:' + c);
console.log('-----------------');
return true;
});
// filter过滤器
arr = [7, 2, 1, 6, 4, 7, 2, 1, 6, 4];
var newArr = arr.filter(function(element, index, array) {
if (element < 5) {
return true;
} else {
return false;
}
});
console.log('过滤器:' + newArr.toString());
// forEach循环,没有返回值
arr = [7, 2, 1];
arr.forEach(function(element, index, array) {
console.log('数组遍历,元素:' + element);
console.log('数组遍历,索引:' + index);
console.log('数组遍历,本身:' + array);
console.log('-----------------');
});
// some一次执行结果为true,则some为true
var b = arr.some(function(element, index, array) {
if (element == 1) {
return true;
}
return false;
});
console.log('some结果' + b);
// 数组清空
arr.length = 0;
arr.splice(0);
arr = [];
}
</script>
</div>
结果
(若有什么错误,请留言指正,3Q)