数组常用方法
演示:push()、shift()、unshift()、reverse()、sort()、splice()、indexOf()
/
/ 1 栈操作(先进后出)
push()
pop() //取出数组中的最后一项,修改length属性
// 2 队列操作(先进先出)
push()
shift() //取出数组中的第一个元素,修改length属性
unshift() //在数组最前面插入项,返回数组的长度
// 3 排序方法
reverse() //翻转数组
sort(); //即使是数组sort也是根据字符,从小到大排序
// 带参数的sort是如何实现的?
// 4 操作方法
concat() //把参数拼接到当前数组
slice() //从当前数组中截取一个新的数组,不影响原来的数组,参数start从0开始,end从1开始
splice() //删除或替换当前数组的某些项目,参数start, deleteCount, options(要替换的项目)
// 5 位置方法
indexOf()、lastIndexOf() //如果没找到返回-1
// 6 迭代方法 不会修改原数组(可选)
every()、filter()、forEach()、map()、some()
// 7 方法将数组的所有元素连接到一个字符串中。
join()
// 1 .栈操作 先进后出
// var array = [1, 2, 3];
// array[array.length] = ...
// array.push(4);
// // 参数, 可以有多个,将来都会添加到数组最后
// // 返回值,就是改变后的数组的长度
// var r = array.push(5, 6, 7);
// // console.log(r);
// // console.log(array);
// // pop 返回数组中的最后一个元素,并且会修改数组的长度
// var last = array.pop();
// console.log(last);
// console.log(array.length);
// console.log(array);
// 2 队列操作(先进先出)
// var array = [1, 2, 3];
// array.push(4);
// var first = array.shift();
// console.log(first);
// console.log(array);
// array.unshift(0);
// console.log(array);
// 3 排序方法
// var array = ['e', 'c', 'f', 'b'];
// // var newArray = array.reverse();
// // console.log(newArray);
// //
// // sort() 直接在原数组上进行排序
// array.sort();
// console.log(array);
// arr.sort(function (a, b) {
// return b - a;
// })
// console.log(arr);
清空数组
方式1 推荐
arr = [];
// 方式2
arr.length = 0;
// 方式3
arr.splice(0, arr.length);
工资的数组[1500, 1400, 2000, 2100, 1600],把工资超过2000的删除
var array=[1500, 1400, 2000, 2100, 1600]
var tmpArray = [];
for (var i = 0; i <array.length; i++) {
if(array[i] < 2000) {
tmpArray.push(array[i]);
}
}
console.log(tmpArray);
array = array.filter(function (item, index) {
if (item < 2000) {
return true;
}
return false;
});
console.log(array);
[“c”, “a”, “z”, “a”, “x”, “a”]找到数组中每一个a出现的位置
// var index = -1;
// do {
// index = arr.indexOf('a', index + 1);
// if (index !== -1) {
// console.log(index);
// }
// } while (index !== -1);
编写一个方法去掉一个数组的重复元素
function clear(arr) {
// 1 如何获取数组中每一个元素出现的次数
var o = {}; // 记录数组中元素出现的次数
for (var i = 0; i < arr.length; i++) {
var item = arr[i]; // 数组中的每一个元素
// o[item] = 1;
// 判断o对象是否有当前遍历到的属性
if (o[item]) {
// 如果o[item] 存在,说明次数不为1
o[item]++;
} else {
// 如果o[item] 不存在,说明是第一次出现
o[item] = 1;
}
}
// console.log(o);
// 2 生成一个新的数组,存储不重复的元素
var newArray = [];
// 遍历对象o中的所有属性
for (var key in o) {
// 判断o对象中当前属性的值是否为 1 如果为1 说明不重复直接放到新数组中
if (o[key] === 1) {
newArray.push(key);
} else {
// o对象中当前属性 次数不为1 ,说明有重复的,如果有重复的话,只存储一次
// 判断当前的newArray数组中是否已经有该元素
if (newArray.indexOf(key) === -1) {
newArray.push(key);
}
}
}
return newArray;
}
var array = ['c', 'a', 'z', 'a', 'x', 'a'];
var newArray = clear(array);
console.log(newArray);
var arr=[2,8,5,0,5,2,6,7,2];
function unique1(arr){
var hash=[];
for (var i = 0; i < arr.length; i++) {
if(hash.indexOf(arr[i])==-1){
hash.push(arr[i]);
}
}
return hash;
}