Javascript对象:选择具有已知键:值对的整个对象

时间:2018-10-01 15:29:06

标签: javascript json

我对一个复杂的json对象感到困惑,在下面的示例中,如何将具有entreprise : 'microsoft'的整个对象存储在变量中。

clientList = {
    id-1111 : {
        entreprise : 'facebook',
        president : 'Mark',
    },
    id-2222 : {
        entreprise : 'microsoft',
        president : 'Bill',
    },
    id-3333 : {
        entreprise : 'apple',
        president : 'Tim'
    }
}

对于axample,我动态地获得了“ Microsoft”,我想获得其输出:

{
    entreprise : 'microsoft',
    president : 'Bill'
}

我知道这是一个基本问题,但是我已经为这个问题苦苦挣扎了好几个小时。 感谢您的帮助。

4 个答案:

答案 0 :(得分:5)

您可以使用find从列表中查找单个项目。

var clientList = {
    "id-1111": {
        entreprise : 'facebook',
        president : 'Mark',
    },
    "id-2222" : {
        entreprise : 'microsoft',
        president : 'Bill',
    },
    "id-3333" : {
        entreprise : 'apple',
        president : 'Tim'
    }
};
var result = Object.values(clientList).find(x => x.entreprise == "microsoft");
console.log(result);

答案 1 :(得分:3)

要查找具有特定企业的所有对象,请使用Array.filter

const clientList = {
    "id-1111" : {
        entreprise : 'facebook',
        president : 'Mark',
    },
    "id-2222" : {
        entreprise : 'microsoft',
        president : 'Bill',
    },
    "id-3333" : {
        entreprise : 'apple',
        president : 'Tim'
    }
};

function findClientsByEnterprise(enterprise) {
  return Object.values(clientList).filter( i => i.entreprise === enterprise);
}

console.log(findClientsByEnterprise("microsoft"))

答案 2 :(得分:0)

您的对象已损坏。在对象密钥中使用引号。

import numpy as np

n = 7
for i in range(n):
    print(1-np.mod(np.arange(i+1), 2)[::-1])

答案 3 :(得分:-1)

如果可以将企业用作唯一ID,则可以按以下方式使用它:

'microsft': {
    enterprise: 'microsoft',
    president: 'Bill'
}

但是作为一般规则,这样做不是一个好习惯。因此,维护具有唯一ID的对象列表并使用find的结构将是最佳解决方案和最佳实践:

clientList = [
    {
        id: 'id-1111',
        entreprise : 'facebook',
        president : 'Mark',
    },
    {
        id: 'id-2222',
        entreprise : 'microsoft',
        president : 'Bill',
    },
    {
        id: 'id-3333',
        entreprise : 'apple',
        president : 'Tim'
    }
}


const result = clientList.find(clientObj => clientObj.enterprise === "microsoft");