You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何过滤cryptoData对象数组,仅保留含DISPLAY属性的元素

原代码存在的问题

  • 错误使用filter回调参数:Array.prototype.filter的回调函数第一个参数el是当前遍历到的数组元素本身,不是索引,原代码用cryptoData[el]属于完全误用,相当于把对象作为数组下标取值,永远无法得到预期结果。
  • 判断逻辑错误:需求是判断元素是否包含DISPLAY属性,原代码写的=== 'DISPLAY'是判断取值等于字符串DISPLAY,和需求完全不符。
  • 变量名拼写错误:filterdArray拼写错误,正确拼写为filteredArray。

正确实现

ES5 兼容写法

var filteredArray = cryptoData.filter(function (el) {
  // 判断当前元素自身是否存在DISPLAY属性
  return el.hasOwnProperty('DISPLAY');
});

this.setState({
  cryptos: filteredArray,
  refreshing: false
});

ES6 简写写法

const filteredArray = cryptoData.filter(el => el.hasOwnProperty('DISPLAY'));

this.setState({
  cryptos: filteredArray,
  refreshing: false
});

补充说明:如果不需要严格判断是元素自身属性(排除原型链继承的属性),也可以简写为return 'DISPLAY' in el,大多数场景下效果一致。

内容的提问来源于stack exchange,提问作者Frank Boccia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 09:09:00