сопоставить динамическое значение с object.keys в объекте - PullRequest
0 голосов
/ 02 июля 2018

если это массив, я могу сделать так, чтобы myArr [0] получил первое значение, но что если это объект? говорит, что мой объект похож на это

{a: 'some value', b: 'another thing'}

Как мне сопоставить первый объект?

['a', 'b'].map(o => //match object return true) Я ожидаю получить [true, true], потому что массив ['a','b'] соответствует значению ключа объекта.

Ответы [ 3 ]

0 голосов
/ 02 июля 2018

let obj = {
  a: 'some value',
  b: 'another thing'
};
console.log(['a', 'b'].map(key => obj.hasOwnProperty(key)));

Object.hasOwnProperty работает хорошо.

0 голосов
/ 25 августа 2018
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, когда он соответствует ключу если (найдено) { значения [тег] = значения [тег] + 1; // это увеличивает количество ключей конкретного объекта. } Еще { значения [tag] = 1; // это устанавливает значение в 1 только один раз для всех ключей, которых нет в объекте JS } }

0 голосов
/ 02 июля 2018

Используйте 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)));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...