JS-判断 array/object中 是否存在某个元素/key(键)-存在性、枚举
本文主要介绍判断数组中是否存在某个元素、并返回所有满足条件的元素;判断数组中的Object中是否存在某个满足条件的元素、并返回所有满足条件的元素、判断数组中的Object中是否存在某个key(键)
·
介绍
本文主要介绍判断数组中是否存在某个元素、并返回所有满足条件的元素;判断数组中的Object中是否存在某个满足条件的元素、并返回所有满足条件的元素、判断数组中的Object中是否存在某个key(键);判断Object中是否存在某个满足条件的元素、判断Object中是否存在某个key(键)、返回Object中所有的key(键)
一、数组中元素为number、string
1. 判断数组中是否存在某个元素
例:arr=[1,2,3,4];
JS方法:
arr.indexOf(3) > -1; // true
arr.indexOf(9) > -1; // false
2. 判断数组中是否存在某个满足条件的元素,并返回所有满足条件的元素
例:筛选数组中的所有奇数:arr=[1, 2, 3, 4, 5, 6, 7, 8, 9];
JS方法:
const list = arr.filter(item => item % 2 === 1);
console.log(list); // [ 1, 3, 5, 7, 9 ]
二、object
1. 判断Object中是否存在某个满足条件的元素
例:
obj = {name:'李四', sex:'男', age:22};
JS方法:
obj.name === '张三'; // true
obj.name === '王五'; // false
2. 判断Object中是否存在某个key(键)
例:
obj = {name:'张三', sex:'男'};
JS方法:
方法1:
Object.hasOwnProperty.call(obj,'name'); // true
Object.hasOwnProperty.call(obj,'age'); // false
方法2:
obj.hasOwnProperty('name'); // true
obj.hasOwnProperty('age'); // false
方法3:
'name' in obj; // true
'age' in obj; // false
3.返回Object中所有的key(键)
例:
obj = {name:'张三', sex:'男'};
JS方法:
方法1:
Object.getOwnPropertyNames(obj); // [ 'name', 'sex' ]
方法2:
Object.keys(obj); // [ 'name', 'sex' ]
三、数组中元素为object
1. 判断数组中的Object中是否存在某个满足条件的元素
例:
arr = [
{name:'张三', sex:'男', age:11},
{name:'李四', sex:'男', age:22},
];
JS方法:
arr.some(item => item.name === '张三'); // true
arr.some(item => item.name === '王五'); // false
2. 判断数组中的Object中是否存在某个满足条件的元素,并返回所有满足条件的元素
例:
arr = [
{name:'张三', sex:'男', age:11},
{name:'李四', sex:'男', age:22},
{name:'王五', sex:'男', age:33},
];
JS方法:
const list = arr.filter(item => item.age === 11);
console.log(list); // [{ name: '张三', sex: '男', age: 11 },{ name: '王五', sex: '男', age: 11 }]
3. 判断数组中的Object中是否存在某个key(键)
例:
arr = [
{name:'张三', sex:'男'},
{name:'李四', sex:'男'},
{name:'王五', sex:'男'},
];
JS方法:
方法1:
arr.some(item=>Object.hasOwnProperty.call(item,'name')); // true
arr.some(item=>Object.hasOwnProperty.call(item,'age')); // false
方法2:
arr.some(item=>item.hasOwnProperty('name')); // true
arr.some(item=>item.hasOwnProperty('age')); // false
方法3:
arr.some(item=>'name' in item); // true
arr.some(item=>'age' in item); // false
------------- The End -------------
许可协议: 转载请保留原文链接及作者。
更多推荐
已为社区贡献6条内容
所有评论(0)