今天刚好有这个块的需求,所以记录下笔记:
Arry.indexOf:此方法判断数组中是否存在某个值,如果存在返回数组元素的下标,否则返回-1
//判断数组中是否包含某项值
let arr = ['5', '7', '10', '20'];
let index = arr.indexOf('10');
console.log(index) //结果是2
//判断字符串中是否包含一个字符
let str="hello word!"
if(str.indexOf('10') >-1) {
alert(“”有”)
}else{
alert("没有") //str.indexOf('10') 的值是-1,所以不包含在内
}
Arry.includes: 此方法判断数组中是否存在某个值,如果存在返回true,否则返回false
//判断数组
var arr=[1,2,3,4];
if(arr.includes(3))
console.log("存在");
else
console.log("不存在");
//判断字符串
var str = "Hello world, welcome to the Runoob。";
var n = str.includes("world"); //true
array.find(callback[,thisArg])
返回数组中满足条件的第一个元素的值,如果没有,返回undefined
var arr=[1,2,3,4];
var result = arr.find(item =>{
return item > 3
});
console.log(result);
-----------------------------------------------
let numbers = [12, 5, 8, 130, 44];
let result = numbers.find(item => {
return item > 8;
});
console.log(result) //12
array.findeIndex(callback[,thisArg])
返回数组中满足条件的第一个元素的下标,如果没有找到,返回-1
var arr=[1,2,3,4];
var result = arr.findIndex(item =>{
return item > 3
});
console.log(result);
new Set实例属性的方法
const s= new Set([1,2,4,5,6,7])
if(s.has(4)){ //有这个成员就返回true,没有就返回false.
console.log("包含")
}else{
console.log("不包含")
}
数组去重
使用new Set去重
let arr=[1,1,2,3,4]
let arr1=Array.from(new Set(arr)) // 1,2,3,4
//方法2,使用展开操作符去重复
let arr2=[...new Set(arr)]// 1,2,3,4
//利用indexOf去重
var arr =[1,-5,-4,0,-4,7,7,3];
function unique(arr){
var arr1 = []; // 新建一个数组来存放arr中的值
for(var i=0,len=arr.length;i<len;i++){
if(arr1.indexOf(arr[i]) === -1){
arr1.push(arr[i]);
}
}
return arr1;
}
console.log(unique(arr)); // 1, -5, -4, 0, 7, 3
//利用数组的includes去重
function unique( arr ){
var arr1 = [];
for(var i=0,len=arr.length;i<len;i++){
if( !arr1.includes( arr[i] ) ){ // 检索arr1中是否含有arr中的值
arr1.push(arr[i]);
}
}
return arr1;
}
console.log(unique(arr)); // -1, 0, 8, -3, 5, 7
//利用数组的filter
function unique( arr ){
// 如果新数组的当前元素的索引值 == 该元素在原始数组中的第一个索引,则返回当前元素
return arr.filter(function(item,index){
return arr.indexOf(item,0) === index;
});
}
console.log(unique(arr)); // 1, 2, 8, 9, 5, 4, 0