如果是数组,我可以这样做,使myArr [0]获得第一个值,但是如果它是一个对象怎么办?说我的对象是这样的
{a: 'some value', b: 'another thing'}
如何匹配第一个对象?
['a', 'b'].map(o => //match object return true)
我希望得到[true, true]
,因为['a','b']
的数组与对象的键值匹配。
答案 0 :(得分:4)
使用map
和in
:
const obj = {a: 'some value', b: 'another thing'};
console.log(['a', 'foo', 'b'].map(key => key in obj));
或者如果该属性可能存在于原型链中,并且您不想包括继承的属性,请改用Object.keys
:
const obj = {
a: 'some value',
b: 'another thing'
};
const keys = Object.keys(obj);
console.log(['a', 'foo', 'b'].map(key => keys.includes(key)));
答案 1 :(得分:0)
let obj = {
a: 'some value',
b: 'another thing'
};
console.log(['a', 'b'].map(key => obj.hasOwnProperty(key)));
答案 2 :(得分:0)
let values = new Object(); // bad practice
let values = {}; // this is Good Practice "JS Object"
let tags= []; // this is Good Practice "JS Array"
根据需要使用const或var。
让我们想象一下标记是一个数组,您可以在其中基于循环来获取动态值。因此它是动态设置的,您将这些值及其出现的位置存储在值对象中-
for(let tag of tags){ // tags here is a dynamic array imagine
let found = Object.keys(values).find((element) => {
return element === tag;
});
// found = true,当它与密钥匹配时 如果(找到){ values [tag] = values [tag] +1; //这会增加特定对象键的数量。 }其他{ values [tag] = 1; //对于JS对象中不存在的所有键,仅将值设置为1 } }