数组查找是否存在某个值、对象查找某个属性、字符串中是否包含某个字符或字符串(整理篇)

一、数组

  1. array.indexOf
 let arr = ['1', '2', '3', '4'];
 let index = arr.indexOf('3');
 console.log(index);// 2

 2.array.includes(searchElement,[fromIndex])

fromIndex:从该索引处开始查找 searchElement。(非必填)

如果为负值,则按升序从 array.length + fromIndex 的索引开始搜索。默认为 0。

let numbers = [12, 5, 8, 130, 44];
let result = numbers.includes(8);//true
result = numbers.includes(118);// false
let numbers = [12, 5, 8, 130, 44];
let result = numbers.includes(8,[1]);console.log(result);//true
let result = numbers.includes(8,[3]);console.log(result);//false

3.array.find

// ---------- 元素是普通字面值 ----------
let numbers = [12, 5, 8, 130, 44];
let result = numbers.find(item => {
    return item > 8;
});// 12

// ---------- 元素是对象 ----------
let items = [
    {id: 1, name: 'something'},
    {id: 2, name: 'anything'},
    {id: 3, name: 'nothing'},
    {id: 4, name: 'anything'}
];
let item = items.find(item => {
    return item.id == 3;
});//{id: 3, name: "nothing"}

4.array.findIndex

返回数组中满足条件的第一个元素的索引(下标), 如果没有找到,返回-1

// ---------- 元素是普通字面值 ----------
let numbers = [12, 5, 8, 130, 44];
let result = numbers.findIndex(item => {
    return item > 8;
});// 0
// ---------- 元素是对象 ----------
let items = [
    {id: 1, name: 'something'},
    {id: 2, name: 'anything'},
    {id: 3, name: 'nothing'},
    {id: 4, name: 'anything'}
];
let index = items.findIndex(item => {
    return item.id == 3;
});// 2

5.some

find返回满足条件的第一项;some找到符合条件的项后返回布尔值

var arr = [{
    name: "小提莫",
    value: "0"
}, {
    name: "小鲁班",
    value: "1"
}]
var result_one = arr.some(function(item) {
    if (item.name == "小提莫") { 
        return true;  
    }
})
console.log(result_one );//true

6.$.inArray(searchElement, arr)

使用jquery的inArray方法,该方法返回元素在数组中的下标,如果不存在与数组中,那么返回-1

var arr=['aaa','bbb','ccc','ddd','eee'];
var a= $.inArray('bbb',arr);
console.log(a);//1

二、对象

1.Obj.hasOwnProperty('name')  是都包含name属性

let obj={name:"Lily",sex:"女"};
let  isHas=obj.hasOwnProperty("name"); 
console.log(isHas);//true

2.in关键字 是否有某个属性

var obj={name:"Lily",sex:"女"};
const hasName="name" in obj;
console.log(hasName);//true

三、字符串

1.indexOf

var str ="123";
console.log(str.indexOf("12")!=-1);//true

2.search()

var str="123";
console.log(str.search("23")!=-1);//true

3.match()

var str="123";
var reg=RegExp(/23/);
if(str.match(reg)){
console.log("包含");
}

4.test()

var str="123,345,567";
var reg=RegExp(/345/);
console.log(reg.test(str));//true

5.exec()

var str="123,345,678,99";
reg=RegExp(/345/)
if(reg.exec(str)){
console.log("包含");
}

猜你喜欢

转载自blog.csdn.net/Holly31/article/details/130578934