<script>
// 方法1 数组方法 利用indexOf索引返回值
{
let arr1 = [1,2,1,3,4,5,6,3,3,1,2] ;
let arr2 = [] ;
for ( let i = 0 ; i < arr1.length ; i ++ ){//循环出数组的每一个元素
if (arr2.indexOf(arr1[i]) == -1 ) {//判断这个元素在不在数组arr2中
arr2.push(arr1[i]); //不在的话往数组末尾添加新元素
}
}
console.log(arr2);
}
//方法2 对象方法 对象的键名不重复性
{
let arr = [1,2,1,3,4,5,6,3,3,1,2] ;
let obj = {} ;
let arr1 = [] ;
for ( let i = 0 ; i < arr.length ; i ++ ) {
let key = arr[i] ; //将数组中的元素赋值给键名
obj[key] = arr[i] ; //将键值赋值给对应的键名,因为这是一个空的对象,所以都是往对象中添加键值对
} //因为键名具有不重复性,在添加相同键名的键值对时,只会重复赋值
for ( let a in obj ){ //在对象中循环
arr1.push(parseInt(obj[a]));//取出键名对应的键值,将键值转化为数字类型,并添加到数组最后一个元素
}
console.log(arr1);
}
//方法3 集合方法 利用集合内元素不重复
{
let arr = [1,2,1,3,4,5,6,3,3,1,2] ;
let set = new Set(arr); //将数组转化为集合类型,集合具有自动去重
console.log(Array.from(set));//集合是一种伪数组,再将集合转化为数组并打印
}
</script>
数组创建
1.字面量创建数组 例:var arr = [] ;
2.内置构造函数创建数组
例: var arr = Array();
new构造函数Array()方法
a.传入一个参数 例:var arr = new Array(5);表示新数组长度为5
b.传入多个参数 例:var arr = new Array(1,2,3,4);表示新数组的元素是1,2,3,4
--注--
数组删除最后一个元素,还可以使数组的长度自减一个
数组方法
1.数组扁平化
a.将数组转成字符串
例:var arr = [1,2,3,4,5];
console.log(arr.toString());
b.join()方法
例:var arr = [1,2,3,4,5];
console.log(arr.join(""));
--join()方法--
join()方法括号内若没有写任何字符,默认为逗号","。
c.把字符串转成数组
例:var str = "abc-de-f";
var arr = str.split("-");
console.log(arr);打印结果["abc","de","f"]
2.数组方法补充
a.数组名.join(char); 数组中的元素以字符隔开,它的返还值是拼接之后的字符串
例: var arr = [1,2,3,4,5] ;
console.log(arr.join("-"));//1-2-3-4-5
b.数组名.reverse(); 将数组中元素正序变成倒序
c.数组拼接 arr1.concat(arr2); 将数组arr2拼接到数组arr1后面
多个数组拼接只需要用逗号隔开 例:arr1.concat(arr2,arr3);
d.数组名.sort();方法 用sort();排序时,如果排序的数字大于9,需要在sort()方法中再添加一个函数
例: var arr = [10,20,45,12,2,3];
var res = arr.sort(function(a,b){
//return b - a ; 返回的数组数字大小为倒序排列
//return a - b ; 返回的数组数字大小为正序排列
]}) ;
--注--
单独用sort();方法排序时,主要是给数组中元素的第一个值的ASCII码排序
对象数组与数组对象
[{},{},{}]对象数组
{a:[],b:[],c:[]}数组对象
数组去重的三种方法<script> // 方法1 数组方法 利用indexOf索引返回值 { let arr1 = [1,2,1,3,4,5,6,3,3,1,2] ; let arr2 = [] ; for ( let i = 0 ; i < arr1.length ; i ++ ){//循环出数组的每一个元素 if (arr2.indexOf(arr1[i]) == -1 ) {//判断这个