javascript - 如何知道javascript中对象的属性值?
问题描述
我有这个对象:
var x= {
"data": {
"getLand": {
"id": "xxx",
"bid": [{
"result": "ON",
"buyer": {
"username": "Dis"
},
"offerSet": [{
"createdStr": "202",
"value": 1
}]
},
{
"result": "CANCEL",
"buyer": {
"username": "Dis"
},
"offerSet": [{
"createdStr": "202",
"value": 15
}]
}
]
}
}
}
我怎么知道是result === "ON"
&& username == "Dis"
?我试过这个:
for (var key in x.data.getLand.bid) {
if((x.data.getLand.bid[key].result === 'ON') && (x.data.getLand.bid[key].buyer.username.toUpperCase() === 'DIS')){
console.log(x.data.getLand.bid[key]);
}
}
它给了我一些问题....有时它有效,有时它没有。你能告诉我另一种方式吗?
解决方案
一个例子for...of
var x = { data: { getLand: { id: "xxx", bid: [ { result: "ON", buyer: { username: "Dis", }, offerSet: [ { createdStr: "202", value: 1, }, ], }, { result: "CANCEL", buyer: { username: "Dis", }, offerSet: [ { createdStr: "202", value: 15, }, ], }, ], }, }, };
for (const item of x.data.getLand.bid) {
if (item.result === "ON" && item.buyer.username.toUpperCase() === "DIS") {
console.log(item);
}
}
编辑:如果需要索引,可以使用forEach
.
var x = { data: { getLand: { id: "xxx", bid: [ { result: "ON", buyer: { username: "Dis", }, offerSet: [ { createdStr: "202", value: 1, }, ], }, { result: "CANCEL", buyer: { username: "Dis", }, offerSet: [ { createdStr: "202", value: 15, }, ], }, ], }, }, };
x.data.getLand.bid.forEach((item, i) => {
if (item.result === "ON" && item.buyer.username.toUpperCase() === "DIS") {
console.log(i);
console.log(item);
}
});
推荐阅读
- python - 如何将熊猫数据框中的索引日期(最后一行)存储在变量中?
- python - Python:将熊猫 3d 数据帧转换为 X、Y、Z
- deep-learning - 一些迭代后 GAN 模型的准确性会降低
- c# - 如何在脚本统一中更改 RectTransfrom 的比例?
- java - 为什么在流中应用地图后Webelement哈希码相同?
- docker - 如何将环境变量加载到 docker-compose 中?
- kivy - 如何恢复kivy默认配置?
- sql - 如何找出同一张表的前两行之间的值是否有任何变化
- ios - Xcode 错误“为 iOS 模拟器构建,但在为 iOS 构建的 dylib 中链接 .. 用于架构 arm64”来自 Apple Silicon M1 Mac
- java - 快速排序不排序输入 [-1, 2, -8, -10]