Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我不能通过点符号访问我的对象属性?_Javascript_Reactjs - Fatal编程技术网

Javascript 为什么我不能通过点符号访问我的对象属性?

Javascript 为什么我不能通过点符号访问我的对象属性?,javascript,reactjs,Javascript,Reactjs,我有以下模式: const SubmitDebtSchema = new Schema ({ creditCard: String, balance: [{ balanceDate: Date, newBalance: Number }] }); 我正在尝试访问“余额”中的“余额日期” 在React前端中,我将componentDidMount上的状态设置为“debts”,它作为一个空数组启动: this.state = { debts: []

我有以下模式:

const SubmitDebtSchema = new Schema ({
  creditCard: String,
  balance: [{
    balanceDate: Date,
    newBalance: Number
  }]
});
我正在尝试访问“余额”中的“余额日期”

在React前端中,我将componentDidMount上的状态设置为“debts”,它作为一个空数组启动:

this.state = {
      debts: []
    }
然后,我根据是否满足特定标准进行筛选:

const creditCards = this.state.debts.filter((x) => { return x.creditCard === 'true' })
从那里,我想访问每个“余额日期”。我正试图通过地图做到这一点:

const databaseMonth = creditCards.map(x => x.balance.balanceDate)
但是,每次都返回未定义的。。。。。我没有解释为什么

如果我将其更改为:

const databaseMonth = creditCards.map(x => x.balance[x.balance.length - 1].balanceDate)
它完美地返回了数组中的最后一个条目及其平衡日期

那么为什么我的没有长度的“地图”不起作用呢

有人能告诉我如何访问每个余额日期吗


任何反馈都将不胜感激。

这是什么样的“模式”,您确定它是准确的吗?它是否与前端接收到的值相匹配?请执行
console.log(JSON.stringify(this.state.debtes))
并将结果发布到这里
balanceDate
位于数组中的对象中。您需要在
balance
中指定对象的索引才能访问其属性
balance[0]。balanceDate
“它成功返回数组中的最后一个条目”-正如您所说,
x.balance
是一个数组
x.balance[index]。balanceDate
有效,
x.balance.balanceDate
无效。这是一个猫鼬模式。该模式是100%准确和有效的。Pilchard也是对的,它是数组中的一个对象,但我如何访问它>“我如何访问每个余额日期”-
creditCards.flatMap(x=>x.balances).map(b=>b.balanceDate)
应该是哪种“模式”,你确定它是正确的吗?它是否与前端接收到的值相匹配?请执行
console.log(JSON.stringify(this.state.debtes))
并将结果发布到这里
balanceDate
位于数组中的对象中。您需要在
balance
中指定对象的索引才能访问其属性
balance[0]。balanceDate
“它成功返回数组中的最后一个条目”-正如您所说,
x.balance
是一个数组
x.balance[index]。balanceDate
有效,
x.balance.balanceDate
无效。这是一个猫鼬模式。该模式是100%准确和有效的。Pilchard也是对的,它是数组中的一个对象,但如何访问它>“如何访问每个余额日期”-
creditCards.flatMap(x=>x.balances).map(b=>b.balanceDate)
应该可以