【问题标题】:How to pick a property name in objects that contain 2 property names (and one is constant)?如何在包含 2 个属性名称(一个是常量)的对象中选择一个属性名称?
【发布时间】:2017-10-26 11:03:53
【问题描述】:

我有这些物品:

{id: 74856, dog: "value"}

{id: 756387, cat: "value"}

{car: "value", id: 098094}

{phone: "value", id: 90876}

我知道每个对象都有 2 个属性,其中一个是“id”。如何在每个对象中选择其他属性名称? (我想得到第一个的结果是“狗”,第二个是“猫”,第三个是“汽车”,最后一个是“电话”。)

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

谢谢!

【问题讨论】:

    标签: javascript


    【解决方案1】:

    这将返回第一个未命名为“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));

    【讨论】:

      【解决方案2】:

      您可以使用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);
      })

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-08-28
        • 1970-01-01
        • 2021-01-04
        • 2012-06-17
        • 2012-04-18
        • 1970-01-01
        • 2011-10-09
        • 1970-01-01
        相关资源
        最近更新 更多