所以我不知道我为什么要为此苦苦挣扎。我认为应该可以使用Lodash或其他方法执行此操作。
我有一个看起来像的对象。
{ "fdjkafdajkfasfjkdaslj": {
"-LMUD-2APhiSLkEtVbM": {
"profileName": "bob",
"profilePic": "www.profilepic.com",
"score": 73,
"teamName": "lzs"
}
}
}
我将不知道该结构的第一个键。上面的例子。
"fdjkafdajkfasfjkdaslj"
或"-LMUD-2APhiSLkEtVbM"
。
我真的只需要将这些键值推入数组即可。
"profileName": "bob",
"profilePic": "www.profilepic.com",
"score": 73,
"teamName": "lzs"
用javascript(实际上是React.js)完成此操作的最佳方法是什么?我在想Lodash,但还没有找到任何东西吗?我在Json中检索嵌套的键/值数据的大多数搜索都表明您需要一个路径,但在这种情况下我将没有该路径。我不知道该对象的前2个键。我唯一拥有的是这个可预测的对象结构,在我的键/值数据之前有2个未知键。
答案 0 :(得分:2)
如果问题样本中对象中只有一个键,则可以使用Object.keys()
const data = [];
const obj = { "fdjkafdajkfasfjkdaslj" {
"-LMUD-2APhiSLkEtVbM": {
"profileName": "bob",
"profilePic": "www.profilepic.com",
"score": 73,
"teamName": "lzs"
}
}
};
const outerObj = obj[Object.keys(obj)[0]];
const item = outerObj[Object.keys(outerObj)[0]];
data.push(item);
答案 1 :(得分:1)
我想您会使用// Output
{15, 15, 15, 15, 15}
// Expected output
1, 1+2=3, 3+3=6, 6+4=10, 10+5=15
{1, 3, 6, 10, 15}
。
Object.values
答案 2 :(得分:0)
对于JSON字符串,可以在解析期间找到它:
var obj, json = '{"fdjkafdajkfasfjkdaslj":{"-LMUD-2APhiSLkEtVbM":{"profileName":"bob","profilePic":"www.profilepic.com","score":73,"teamName":"lzs"}}}'
JSON.parse(json, (k, v) => v.profileName ? obj = v : v)
console.log( obj )