Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 搜索数组以显示html中的列表_Javascript_Html_List - Fatal编程技术网

Javascript 搜索数组以显示html中的列表

Javascript 搜索数组以显示html中的列表,javascript,html,list,Javascript,Html,List,我有一个数组,包含下面的一些项目,我的目标是能够使用搜索栏搜索一个或多个与关键字匹配的项目,然后生成html中匹配产品的列表以显示它们 const catalog = { "Ipad": { "name": "Ipad", "key": "ipad", "keywords": ["tablet", "apple"], "price": 800 }, "Iphone"

我有一个数组,包含下面的一些项目,我的目标是能够使用搜索栏搜索一个或多个与关键字匹配的项目,然后生成html中匹配产品的列表以显示它们

  const catalog = {
        "Ipad": {
          "name": "Ipad",
          "key": "ipad",
          "keywords": ["tablet", "apple"],
          "price": 800
        },
        "Iphone": {
          "name": "Iphone",
                "key": "iphone",
          "keywords": ["apple", "phone"],
          "price": 1200
        },
        "GalaxyTablet": {
          "name": "GalaxyTablet",
          "key": "galaxytablet",
          "keywords": ["galaxy", "tablet", "samsung"],
          "price": 800
        },
        "GalaxyPhone": {
          "name": "GalaxyPhone",
          "key": "galaxyphone",
          "keywords": ["galaxy", "phone", "samsung"],
          "price": 1000
        },
        "HTCPhone": {
          "name": "HTCPhone",
          "key": "htcphone",
          "keywords": ["htc", "phone"],
          "price": 650
        },
        "SonyPhone": {
          "name": "SonyPhone",
          "key": "sonyphone",
          "keywords": ["sony", "phone"],
          "price": 850
        },
        "WindowsPhone": {
          "name": "WindowsPhone",
          "key": "windowsphone",
          "keywords": ["phone", "windows"],
          "price": 800
        },

      };

您需要迭代数据中的每个对象,并按搜索关键字将其过滤掉,如下面的代码所示

常量目录={ Ipad:{ 名称:Ipad, 关键词:ipad, 关键词:[平板电脑,苹果], 价格:800 }, Iphone:{ 名称:Iphone, 关键词:iphone, 关键词:[苹果,手机], 价格:1200 }, 丙氧基片:{ 名称:加氧片, 关键词:加氧片, 关键词:[银河、平板电脑、三星], 价格:800 }, GalaxyPhone:{ 姓名:GalaxyPhone, 键:galaxyphone, 关键词:[银河,手机,三星], 价格:1000 }, HTCPhone:{ 姓名:HTCPhone, 键:htcphone, 关键词:[htc,电话], 售价:650 }, 索尼电话:{ 姓名:SonyPhone, 键:sonyphone, 关键词:[索尼,手机], 售价:850 }, WindowsPhone:{ 姓名:WindowsPhone, 键:windowsphone, 关键词:[手机,windows], 价格:800 }, }; const searchKeyword='apple'; 常量最终结果=[] 对于目录中的常量项{ const obj=目录[项目]; 如果obj.keywords.indexofsearch关键字!=-1{ finalResult.pushobj; } }
console.logfinalResult;这不是数组,而是对象。还有,搜索栏中的输入是什么?我会使用一个关键字来搜索,并与对象列表中包含的内容进行匹配