如何在不知道对象名称的情况下访问对象

时间:2020-08-24 10:27:15

标签: javascript angular typescript

我有问题。我想在一个有角度的前端获取服务值,但是这次我不能这样做,因为我不知道服务对象的名称(名称是comm键,所以它是可变的)。

服务响应如下:

11791146: {m_serverQuery: {…}, m_key: 11791146} 

我需要在这里获取m_key-注意11791146是可变的。

我尝试过:

console.log(data);
let arr = data[0].m_key;
console.log(arr);

console.log(data);
let arr = data[m_key];
console.log(arr);

但是没有用。

3 个答案:

答案 0 :(得分:6)

这是一般的方法。

var response = {
  11791146: {m_serverQuery: "", m_key: 11791146} 
}

var mKey = response[Object.keys(response)[0]].m_key;
console.log(mKey);

如果有多个键,则可以使用Object.keys(response)循环遍历并获取数组中的所有键。

答案 1 :(得分:2)

您可以尝试使用Object.keys这样接收m_key:

const key = Object.keys(data);
const m_key = data[key[0]];

答案 2 :(得分:2)

您可以尝试使用Object.keys()(也称为Object.values())来获取对象的键(或值),而无需了解其数据。

尝试以下

let data = { 11791146: {m_serverQuery: {name: 'sample'}, m_key: 11791146}};

console.log(Object.keys(data)[0]);

console.log(Object.values(data)[0]);
console.log(Object.values(data)[0].m_serverQuery);
console.log(Object.values(data)[0].m_key);

注意:在两种情况下,我都假定对象data仅具有一个属性。因此,我直接使用[0]访问它。否则,您将不得不处理函数返回的数组中的多个元素。