繁体   English   中英

JavaScript通过数组过滤,仅根据一个值的匹配返回

[英]JavaScript filter through array and only return based on match of one value

我有一个对象数组,每个对象都有一个相位键,我只想返回与特定相位值匹配的对象,然后将其他几个键/值映射到最终的返回值中。 这是我到目前为止的内容:

phaseToBlocks (toggle, phase) {
  this.phaseBlocks = this.$store.state.addresses.salesRepPhases
  return this.phaseBlocks
    .filter(fiber_phase === phase)
    // .map(({id, phase, name, min_number, max_number}) => ({id: id, phase: fiber_phase, name: name, min_number: min_number, max_number: max_number}))
}

当前,这不会过滤掉任何东西并返回对象的原始数组。 这是对象数组的片段:

[ { "fiber_phase": "101", "parsed_hash": "1bc7fb114ee10d7cb9cea10693d238b5", "min_number": 400, "max_number": 499, "sales_rep": "164", "id": "abd90d6b-28a8-2be6-d6c1-abd9007aef38", "name": "48TH ST E", "block_minimum": 400, "block_maximum": 498 }, { "fiber_phase": "101", "parsed_hash": "1bc7fb114ee10d7cb9cea10693d238b5", "min_number": 400, "max_number": 499, "sales_rep": "164", "id": "abd90d6b-28a8-2be6-d6c1-abd9007aef38", "name": "48TH ST E", "block_minimum": 401, "block_maximum": 499 }, { "fiber_phase": "103", "parsed_hash": "1e002ef82be950696f9053dc77b621cf", "min_number": 4700, "max_number": 4799, "sales_rep": "164", "id": "a1d58c9c-6ba7-ebc6-8a74-a1d5806e0bcf", "name": "11TH AVE S", "block_minimum": 4700, "block_maximum": 4798 }]

filter()一个回调函数来检查条件并进行过滤:

return this.phaseBlocks
    .filter(item => item.phase === phase);

如果您.filter工作方式,请参阅以下内容:

this.phaseBlocks.filter((phaseBlock) => {
   return phaseBlock.fiber_phase === phase;
});

filter遍历数组,并且(phaseBlock)是当前迭代的数组元素。

接下来,如果该项满足条件(在这种情况下,其fiber_phase属性等于phase ), fiber_phase推送到filter创建的新数组中。

有关更多信息,请检查文档: https : //developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM