首页 > 解决方案 > 为数组的 JavaScript 树创建 forEach 语句

问题描述

标签: javascriptarraysdatabasestringweb

解决方案


Based on the updated database format in your question, you could achieve basic search based on something like this:

var SampleArray = [{
  "Food" : [ "banana", "Strawberry", "grapes" ],
  "Vegitables" : [ "Carrot", "Peppers" ],
  "Words" : [ "hello", "Goodbye", "Grapes" ],
  "Adjectives" : [ "Good", "First" ]
}]

function searchDatabase(query) {

  // For each object in array
  for(var object of SampleArray) {

    // Get list values of object
    var lists = Object.values(object)

    // For each list of object
    for(var list of lists) {

      // For each item of list
      for(var item of list) {

        // Look for item matching query. Locally convert to lower case to
        // avoid case sensitivity issues
        if(item.toLowerCase().indexOf(query.toLowerCase()) !== -1) {
          return object
        }
      }
    }
  }
}

console.log('search for good', searchDatabase('good') ? 'found' : 'not found')
console.log('search for bad', searchDatabase('bad') ? 'found' : 'not found')


推荐阅读