目录
js数据类型有哪些
基本数据类型
Number 数字类型
String 字符串类型
Boolean布尔类型
undefined未定义
null 空型
Symbol 唯一值
引用数据类型
数组
函数
对象
Set
Map
内置对象有哪些
Math:数学对象,数学和函数相关的
Date:日期对象,处理日期和时间
Array:数组对象
String:字符串对象
数组方法有哪些
1--unshift------添加元素,在数组最前边添加,返回数组的长度
2--shift------删除元素,在数组最前边删除,返回删除的元素
3--reverse------翻转数组,返回一个新数组,会改变原来的数组
4--sort------排序,默认从大到小排序,改变原来的数组
5--concat------拼接,如果参数是数组,则拼接数组;如果参数是非数组,在末尾添加元素。返回新数组,原数组不变
6--slice(start,end)------截取,从索引start开始截取,到end结束,包括start不包括end,原数组不变
7--splice(start,length)------截取,从索引start截取length个元素,原数组改变
8--indexOf------查询某元素的索引,从前往后查找第一次出现的索引,没有返回-1
9--lastIndexOf------查询某元素的索引,从后往前查找第一次出现的索引,没有返回-1
10--join------转化,通过指定分隔符连接数组所有元素,返回字符串,默认用逗号分隔
11--forEach------遍历数组,没有返回值
12--some-----判断元素是否满足条件,有一个满足就返回true,都不满足返回false
13--every-----判断元素是否满足条件,都满足就返回true,有一个不满足返回false
14--map-----用于数学计算,返回数组
15--filter------过滤元素,过滤出符合条件的元素,返回数组
数组去重几种方式
1--双重for循环
var arrOld = [2, 3, 5, 4, 3, 2, 6, 8, 5, 4, 6, 2];
var arrNew = [];
var flag = true;
for (var i = 0; i < arrOld.length; i++) {
flag = true;
for (var j = 0; j < arrNew.length; j++) {
if (arrNew[j] == arrOld[i]) {
flag = false;
}
}
if (flag) {
arrNew.push(arrOld[i]);
}
}
console.log(arrNew);
2--indexOf()方法
function unique(arrOld) {
var arrNew = [];
for (var i = 0; i < arrOld.length; i++) {
if (arrNew.indexOf(arrOld[i]) === -1) {
arrNew.push(arrOld[i])
}
}
return arrNew;
}
3--splice()方法
4--filter()方法
function unique(arrOld) {
return arrOld.filter(function(item, index, arrOld) {
return arrOld.indexOf(item,0) === index;
});
}
5--includes()方法
function unique(arr) {
if (!Array.isArray(arr)) {
console.log('type error!')
return
}
var array =[];
for(var i = 0; i < arr.length; i++) {
if( !array.includes( arr[i]) ) {
array.push(arr[i]);
}
}
return array
}
6--利用对象属性不能重复的特点
var arrOld = [2, 3, 5, 4, 3, 2, 6, 8, 5, 4, 6, 2];
var arrNew = [];
var obj = {};
for (var i = 0; i < arrOld.length; i++) {
obj[arrOld[i]] = 1;
}
for (x in obj) {
arrNew.push(Number(x));
}
console.log(arrNew);
7--利用Set结构成员不能重复的特点
function unique (arr) {
return Array.from(new Set(arr))
}