javascript - 使用 Javascript 以外的方式过滤数据

标签 javascript html

我正在尝试使用 more_than 过滤我的数据,并且我只想显示数据,其中数字 大于输入中输入的值。 我不知道为什么我的过滤器不起作用。 这是我的 JS:

const data = [
  {
    "id": 2,
    "number": 50,
    "title": "ASD",
    "src": "https://cloudfour.com/examples/img-currentsrc/images/kitten-small.png"
  },
  {
    "id": 1,
    "number": 122,
    "title": "FGH",
    "src": "https://cloudfour.com/examples/img-currentsrc/images/kitten-small.png"
  }
]
const info_container = document.querySelector('.info-container')

const more_than = (e) => {
  data.filter((a) => {
    return parseFloat(a.number) > parseFloat(e)
  })
  fetchData()
}

const fetchData = () => {
  info_container.innerHTML = "";
  data.forEach((item, index) => {
  const img = document.createElement("img");
  const title = document.createElement('h3')

  const node = document.createTextNode(item.src);
  const node_title = document.createTextNode(item.title)

  title.appendChild(node_title)
  img.src = item.src

  info_container.appendChild(title)
  info_container.appendChild(img);

})
}
window.onload = function() {
  fetchData()
}

HTML:

<input oninput="more_than(value)" class="input-number" type="number"> 
 <div class="info-container">

 </div>

plnkr:http://plnkr.co/edit/6U4kf30dvBAtOyRCraEr?p=preview

最佳答案

尝试返回过滤后的数组,避免在辅助函数中引入副作用。

const data = [{
    "id": 2,
    "number": 50,
    "title": "ASD",
    "src": "https://cloudfour.com/examples/img-currentsrc/images/kitten-small.png"
  },
  {
    "id": 1,
    "number": 122,
    "title": "FGH",
    "src": "https://cloudfour.com/examples/img-currentsrc/images/kitten-small.png"
  }
]

const moreThan = (e) => {
  return data.filter(a => parseFloat(a.number) > parseFloat(e))
}

console.log(moreThan(40))
console.log(moreThan(120))

// fetchData(moreThan(40))

// Readabillity
const moreThanNum = (num,dataArray) => dataArray.filter(data => parseFloat(data.number) > parseFloat(num))

关于javascript - 使用 Javascript 以外的方式过滤数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55672759/

相关文章:

javascript - 如何在我的代码中修复 addEventListener?好像随时取消

html - 扩展 float 菜单,因此高度与内容 div 相匹配

javascript - 使用启用 Bootstrap 的控件时是否存在额外文件?

javascript - 从服务器端获取数组以便稍后与 JS 一起使用?

php - 分别使用带有通配符的 JQuery

javascript - 无法在片段对话框中获取控件

javascript - 如何检查鼠标是否不在 javascript 中的元素上?

javascript - CSS 手写动画

javascript - 谷歌地图 javascript api V3 不显示 map

html - 将 css 样式应用于子元素