js判断一个数组或者字符串中是否包含指定的字符,判断数组去重

今天刚好有这个块的需求,所以记录下笔记:

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
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值