从动态id的嵌套对象中获取值- javascript



我从SlackAPI(块元素)接收有效载荷,我不能得到我的头哦,我如何从它获得数据作为id和顺序总是改变。我想要保护费。价值,legal_fee。Value和repayment_date.selected_date

"state": {
"values": {
"CjV": {
"protection_fee": {
"type": "plain_text_input",
"value": "111"
}
},
"36tAM": {
"legal_fee": {
"type": "plain_text_input",
"value": "111"
}
},
"oH8": {
"repayment_date": {
"type": "datepicker",
"selected_date": "1990-04-18"
}
}
}

},

I tried Object。键,但显然我失败了,因为顺序改变了。

当前代码:

const payload = JSON.parse(body);
const state = payload.state.values;
const first = Object.keys(state)[0];
const second = Object.keys(state)[1];
const repaymentDate = state[first].protection_fee.value;
const protectionFee = state[second].legal_fee.value;

我建议创建一个像findProperty()这样的函数,它将在有效负载中找到相关对象。

我们将在payload.state.values对象上调用Object.entries(),然后在条目键/值对上使用Array.find()来查找具有所需属性的对象。

一旦我们有了这个属性,我们就可以返回它。

let payload = { "state": { "values": { "CjV": { "protection_fee": { "type": "plain_text_input", "value": "111" } }, "36tAM": { "legal_fee": { "type": "plain_text_input", "value": "111" } }, "oH8": { "repayment_date": { "type": "datepicker", "selected_date": "1990-04-18" } } } } }
function findProperty(obj, key) {
const [, value] = Object.entries(obj).find(([k,v]) => v[key]);
return value[key];
}
console.log('legal_fee:', findProperty(payload.state.values, 'legal_fee').value)
console.log('protection_fee:', findProperty(payload.state.values, 'protection_fee').value)
.as-console-wrapper { max-height: 100% !important; }

最新更新