Для объекта item
, например
{
name:"Joe",
occupied:"no",
}
Перебирая его ключи с помощью Object.keys
, вы получаете ['name', 'occupied']
. Доступ к item[key]
на объекте даст вам значение этого ключа, например 'Joe'
или 'no'
.
Вот еще один способ сделать то же самое, но с Object.entries
, который дает массив записей (пары ключ-значение, в виде массива: [[key, value], [key, value], [key, value]]
) вместо массива ключей ([key, key, key]
):
const items=[{name:"Joe",occupied:"no",mobile:"yes",treatment:"no",date:"29-03-2020",age:"15",stuff:["A","B","C"],type:["1","2"]},{name:"Jack",occupied:"yes",mobile:"no",treatment:"no",date:"02-03-2020",age:"20",stuff:["A","B","C","D","E"],type:["8","6"],misc:["otherStuff","someStuff"]},{name:"Jane",occupied:"no",mobile:"yes",treatment:"yes",date:"15-02-2020",age:"28",stuff:["C","D","E"],type:["4","7"],something:["xxx","ccc"]}];
const keysWithArrays = new Set(
items.flatMap(
item => Object.entries(item)
.filter(([key, value]) => Array.isArray(value))
.map(([key]) => key)
)
);
console.log([...keysWithArrays]);
(но для этого требуется дополнительный .map
в конце)