【发布时间】:2020-05-30 07:05:32
【问题描述】:
我正在尝试根据值过滤一组对象。在以下 console.log 中,只有第一个给出了预期的结果:
console.log('log1: ', sf);
console.log('log2: ', sf.filter(f => true));
console.log('log3: ', sf.filter(f => f.Specification.FormSelector === 'app-g-form'));
console.log('log4: ', sf.findIndex(f => f.Specification.FormSelector.includes('app-g-form')));
上面的结果是:
对于 log2、log3 和 log4,我希望控制台输出与 log1 相同。输出 log1 显示 sf 确实包含有效数据。
【问题讨论】:
-
这有点奇怪,至少如果
sf是一个合法的数组。sf哪里来的? -
你能在堆栈闪电战中重新创建吗?这是我的版本,按预期工作:stackblitz.com/edit/angular-xfkcrc
-
你的假设是正确的。问题必须在通话之间。您是否执行了任何其他对
sf造成副作用的操作,因此日志会打印出结果? -
就像@PhilippMeissner 所问的那样,您在登录后是否修改了对象
sf?后期修改仍然可以反映在日志中。控制台日志不保存对象的副本,它只包含对它的引用。
标签: arrays angular typescript filter