一、遍历数组新方法
1、使用forEach遍历数组,无返回值
语法:forEach(function(value, index, item){})
var arr = ["a", "b", "c", "d"];
// value 数组中每个值
// index value在数组中对应的下标
// item 数组本身
arr.forEach(function (value, index, item) {
console.log(value, index, item);
});
2、使用map遍历数组,返回新处理的数组
var arr = [1, 2, 3, 4];
var test2 = arr.map(function(value, index, item) {
console.log(value, index, item);
return value * value;
});
console.log(test2);// [1, 4, 6, 19]
二、数组对象-方法
方 法 | 说明 |
pop() | 删除最后一个元素,返回最后一个元素 |
push (元素1,元素2,……) | 添加元素,返回数组的长度 |
splice(位置,多少[,元素1,元素2,……]) | 从数组中删除或替换元素 |
sort() | 排序数组 |
reverse() | 颠倒数组中元素顺序 |
1、数组对象 ——方法
(1)pop() 方法用于删除并返回数组的最后一个元素。
语法 :arrayObject.pop()
注意:
pop() 方法将删除 arrayObject 的最后一个元素,把数组长度减 1,并返回它删除元素的值。
如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。
(2) shift()删除数组第一个元素
语法 :arrayObject.shift()
(3)unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
语法:arrayObject.unshift((newelement1,newelement2,....,newelementX)
(4)push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
语法: arrayObject.push(newelement1,newelement2,....,newelementX)
// var arr = [12, 15, "abc", 89, false];
/*
//删除尾部最后一个元素
arr.pop();
document.write(arr); */
/*
//删除头部最后一个元素
arr.shift();
document.write(arr); */
/*
//在尾部添加元素
arr.push('hello', 99);
document.write(arr); */
/* //在头部添加元素
arr.unshift('hello', 99);
document.write(arr); */
//数组去重
/* var arr = [10, 20, 10, 30, 10, 20, 89, 98];
var a = [];
for (var i = 0; i < arr.length; i++) {
var item = arr[i];
if (a.indexOf(item) === -1) {
a.push(item);
}
}
document.write(a); */
// 数组封装
function noRepeat(arr) {
var a = [];
for (var i = 0; i < arr.length; i++) {
var item = arr[i];
if (a.indexOf(item) === -1) {
a.push(item);
}
}
return a;
}
var a = [10, 20, 10, 30, 10, 20, 89, 98];
document.write("原数组", a);
document.write("去重后数组", noRepeat(a));
(5)sort() 方法用于对数组的元素进行排序。
语法 :arrayObject.sort(sortby)
- 如果不指定<方法函数>,则按unicode码顺序排列。
- 如果指定<方法函数>,则按<方法函数>所指定的排序方法排序。 myArray.sort(sortMethod);
注意:
该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。
比较函数应该具有两个参数 a 和 b,其返回值如下:
- 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
- 若 a 等于 b,则返回 0。 若 a 大于 b,则返回一个大于 0 的值。
<script>
/* var arr = [10, 25, 13, 5, 95, 29, 89, 98];
document.write("原数组", arr);
arr.sort();
document.write("排序后的数组", arr); */
/* //升序 匿名函数
var arr = [10, 25, 13, 5, 95, 29, 89, 98];
arr.sort(function (a, b) {
return a - b;
});
document.write("排序后的数组", arr); */
//降序
/* var arr = [10, 25, 13, 5, 95, 29, 89, 98];
arr.sort(function (a, b) {
return b - a;
});
document.write("排序后的数组", arr); */
//有名函数
var arr = [10, 25, 13, 5, 95, 29, 89, 98];
arr.sort(fn);
function fn(a, b) {
return b - a;
};
document.write("排序后的数组", arr);
</script>
(6)reverse() 方法用于颠倒数组中元素的顺序。
语法 :arrayObject.reverse()
<script>
var arr = [10, 25, 13, 5, 95, 29, 89, 98];
/*
//颠倒
arr.reverse();
document.write(arr); */
/*拼接
var arr2 = ["hello", false];
var arr3 = ['box'];
//document.write(arr.concat(arr2));
document.write(arr.concat(arr2, arr3)); */
// document.write(arr.join());
document.write(arr.join("-"));
</script>
(7)splice() splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。
语法: arrayObject.splice(index,howmany,item1,.....,itemX)
注意:
- splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的 一个或多个值来替换那些被删除的元素。
- 如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。