如何在包含2个属性名称的对象中选择属性名称(并且一个是常量)?

时间:2017-10-26 00:50:27

标签: javascript

我有这些对象:

{id: 74856, dog: "value"}

{id: 756387, cat: "value"}

{car: "value", id: 098094}

{phone: "value", id: 90876}

我知道每个对象都有2个属性,其中一个是“id”。如何在每个对象中选择其他属性名称? (我希望第一个获得结果“dog”,第二个获得“cat”,第三个获得“car”,最后一个获得“phone”。)

编辑:如果没有必要,不必强制使用lodash。

谢谢!

2 个答案:

答案 0 :(得分: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));

答案 1 :(得分: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);
})