Array对象的常用属性
//Array.isArray(对象) 判断这个对象是否是数组对象
console.log(Array.isArray(arr));//true
console.log(Array.isArray(obj));//false
//.concat(数组1,数组2......)组合成一个新的数组
var arr1 = [1, 2, 3, 4];
var arr2 = [5, 6, 7, 8, 9];
var arr3 = [10, 11, 12, 13, 14]
console.log(arr1.concat(arr2, arr3));
//.every(函数) 返回值是bool类型这个函数中有三个参数(一假即假)
var arr3 = [10, 11, 12, 13, 14]
//a:元素的值
//b:元素索引的值
//c:整个数组
var flag = arr3.every(function (a, b, c) {
console.log(a + "-----" + b + "-----" + c);
return a > 0;//数组的每个元素的值都大于0,才会返回true
})
console.log(flag);
//.some(函数) 返回值是bool类型这个函数中有三个参数(一真即真)
var flag = arr3.some(function (a, b, c) {
return a > 13;
})
console.log(flag);
//.....................................................
var arr = ["小明3", "小红t", "小兰rrryy", "小李ddd", "小四22"];
//判断数组中的每个元素的长度是不是大于3
var flag = arr.every(function (element) {
return element.length > 3;
})
console.log(flag);
//.filter(函数) 返回的是数组中每一个符合条件的元素,组合成一个新的数组(过滤的方法)
//筛选出不等于0的字符串
var arr4 = [1, 2, 0, 3, 0, 4, 0];
var getNum = arr4.filter(function (ele) {
return ele > 0;
})
console.log(getNum);
//.push()把这个值追加到数组的末尾,返回值是追加后数组的长度
//.unshift()把这个值追加到数组的第一个元素前面,返回值是追加后数组的长度
var arr5 = [1, 2, 3, 4];
var result = arr5.push(5);
var result1 = arr5.unshift(0);
console.log(arr5);
console.log(result);
console.log(result1);
//.pop()删除数组中的最后一个元素,返回的是删除的这个值
//.shift()删除数组中的第一个元素,返回的是删除的这个值
var arr5 = [1, 2, 3, 4];
console.log(arr5.pop());//4
//forEach(函数) 用于遍历数组,相当于for循环
// console.log(arr5.forEach(function (ele, index) {
// console.log(ele + "-----" + index);
// });
//indexOf(元素值) 返回的是元素所对的索引值,没有则返回-1
console.log(arr5.indexOf(2));
//.join("字符串") 用这个字符串分隔,返回的是一个新的字符串
var arr = ["小黑", "小白", "小辉"];
console.log(arr.join("|"));
//.reverse() 反转数组
console.log(arr.reverse());
//.sort() 给数组排序
Array对象的练习
//1.将一个字符串数组用-分隔并输出
var arr=[1,2,3,4,5,6];
console.log(arr.join("-"));
//2.反转数组 两种方法
console.log(arr.reverse());
//3.工资的数组,只要工资超过2000的删除 三种方法
//方法一:
var arr=[1500,2000,3500,1000,800];
for (var i=0;i<arr.length;i++){
if (arr[i]>2000){
arr.splice(i,1);
}
}
console.log(arr);
arr.forEach(function (ele,index) {
if (ele>2000) {
arr.splice(index,1)
}
})
//方法二:
var newArr= arr.filter(function (ele) {
return ele<=2000;
});
console.log(newArr)
//方法三:
var newArr=[];
arr.forEach(function (ele,index) {
if (ele<=2000){
newArr.push(ele);
}
})
console.log(newArr);
//4.去掉一个数组中的重复元素
var arr1=["a","b","a","c","c"];
function clear() {
var obj={};
for (var i=0;i<arr1.length;i++){
if (obj[arr[i]]){
obj[arr[i]]++;
}else{
obj[arr1[i]]=1;
}
}
console.log(obj);
var newArr=[];//储存新的没有重复的元素
for (var key in obj){
//判断每一个键的值是1的话,就添加到数组里面去
if (obj[key]==1){
newArr.push(key);
} else {
//判断新数组里如果没有ke则添加进去
if (newArr.indexOf(key)==-1){
newArr.push(key);
}
}
}
console.log(newArr);
}
clear();
//5.给数字排序
var arr = [2, 5, 8, 3, 1, 0, 10];
arr.sort(function (a, b) {
if (a > b) {
return 1;
} else if (a < b)
{
return -1;
}
else
{
return 0;
}
});
console.log(arr);
//6.给中文排序
var arr1=["拉萨","珠穆朗玛峰","青藏高原","武汉","喜马拉雅"]
arr1.sort(function (a,b) {
return a.localeCompare(b);
})
console.log(arr);
//.slice(开始的索引,结束的索引) 包前不包含后 截取数组的只放到新的数组
var arr = [2, 5, 8, 3, 1, 0, 10];
console.log(arr.slice(3, 4));
//.splice(开始的位置,要删除的个数,替换的元素的值) 一般用于删除数组中的某个元素,或者替换元素,或者插入元素
//在索引为2 的位置插曲一个50
console.log(arr.splice(2,0, 150));//返回的是删除的值
console.log(arr);
//在索引为3的基础上删除两个
arr.splice(3,2);
console.log(arr);