Как выбрать имя свойства в объектах, которые содержат 2 имени свойства (и одно постоянное)?

1

У меня есть следующие объекты:

{id: 74856, dog: "value"}

{id: 756387, cat: "value"}

{car: "value", id: 098094}

{phone: "value", id: 90876}

Я знаю, что каждый объект имеет 2 свойства и один из них - "id". Как выбрать другое имя свойства в каждом объекте? (Я хочу получить результат "собака" для первого, "кошка" для второго, "автомобиль" для третьего и "телефон" для последнего).

EDIT: использование lodash не является обязательным, если не нужно.

Спасибо!

Теги:

2 ответа

1
Лучший ответ

Вы можете получить все ключи с помощью Object.keys и удалить "id".

var v1 = {id: 74856, dog: "value"};

var v2 = {id: 756387, cat: "value"};

var v3 = {car: "value", id: 098094};

var v4 = {phone: "value", id: 90876};

Object.keys(v1).map(function(key){
  if(key != 'id')
  console.log(key);
})
Object.keys(v2).map(function(key){
  if(key != 'id')
  console.log(key);
})
Object.keys(v3).map(function(key){
  if(key != 'id')
  console.log(key);
})
Object.keys(v4).map(function(key){
  if(key != 'id')
  console.log(key);
})
2

Это возвращает первый объект-член, который не назван "id" (в ES6)

let v1 = {id: 74856, dog: "value"};
let v2 = {id: 756387, cat: "value"};
let v3 = {car: "value", id: 98094};
let v4 = {phone: "value", id: 90876};

const excludeIdKey = (key) => key !== "id" ? key : null;

// will return "dog"
console.log(Object.keys(v1).find(excludeIdKey));
// will return "cat"
console.log(Object.keys(v2).find(excludeIdKey));
// will return "car"
console.log(Object.keys(v3).find(excludeIdKey));
// will return "phone"
console.log(Object.keys(v4).find(excludeIdKey));

Ещё вопросы

Сообщество Overcoder
Наверх
Меню