使用 Typescript 和 ionic 在嵌套数组中搜索
Posted
技术标签:
【中文标题】使用 Typescript 和 ionic 在嵌套数组中搜索【英文标题】:Search inside Nested array using Typescript and ionic 【发布时间】:2018-05-29 07:53:04 【问题描述】:我想知道如何使用打字稿在嵌套数组中进行搜索 例如,如果用户输入 KNOR 我想显示整个组而不是项目。 这意味着我想检查 Name 字段并获得结果。
下面是 JSON 结构
group_id: 61,
sortid: "1",
group_items: [
group_id: "61",
id: "1",
code: "1",
name: "ASTRA MARGARINE 1KG",
bulkprice: "800.00",
description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ",
picture: [
"img/itemlist/astra/a1.png",
"img/itemlist/astra/a2.png"
],
qty: "2",
active: "0",
availableqty: "100",
itemprice: "400.00"
,
group_id: "61",
id: "1",
code: "4",
name: "KNOR CHICKEN CUBE 28S CONTAINER 280G",
bulkprice: "700.00",
description: " Interdum et malesuada fames ac ante ipsum primis in faucibus. Nam at enim sit amet ligula semper tempus.",
picture: [
"img/itemlist/knor/k1.png",
"img/itemlist/knor/k2.png"
],
qty: "10",
active: "0",
availableqty: "1",
itemprice: "25.00"
]
,
group_id: 64,
sortid: "2",
group_items: [
group_id: "64",
id: "1",
code: "3",
name: "FLORA MARGARINE LARGE 500G",
bulkprice: "20.00",
description: "Aenean vehicula imperdiet ex, in lacinia magna
bibendum sed.",
picture: [
"img/itemlist/flora/f1.1.png",
"img/itemlist/flora/f1.2.png",
"img/itemlist/flora/f1.png"
],
qty: "1",
active: "0",
availableqty: "500",
itemprice: "700.00"
]
我想要的结果是如果用户搜索 Knor
group_id: 61,
sortid: "1",
group_items: [
id: "1",
code: "1",
name: "ASTRA MARGARINE 1KG",
bulkprice: "800.00",
description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ",
picture: [
"img/itemlist/astra/a1.png",
"img/itemlist/astra/a2.png"
],
qty: "2",
active: "0",
availableqty: "100",
itemprice: "400.00"
,
id: "1",
code: "4",
name: "KNOR CHICKEN CUBE 28S CONTAINER 280G",
bulkprice: "700.00",
description: " Interdum et malesuada fames ac ante ipsum primis in faucibus. Nam at enim sit amet ligula semper tempus.",
picture: [
"img/itemlist/knor/k1.png",
"img/itemlist/knor/k2.png"
],
qty: "10",
active: "0",
availableqty: "1",
itemprice: "25.00"
感谢快速帮助。
【问题讨论】:
我在该组的任何描述中都看不到“KNOR”...您将如何从“KNOR”映射到61
?或者你想要“任何包含匹配的组”?
是的,我想要包含匹配项的组
【参考方案1】:
我写了一个非常简单易用的库ss-search。
在您搜索嵌套数组的情况下,您可以执行以下操作:
search(data, ["name"], "KNOR")
这将过滤掉数据以仅返回名称属性中包含“KNOR”的结果。
【讨论】:
【参考方案2】:您使用以下功能来解决此问题....
test()
var data =
group_id: 61,
sortid: "1",
group_items: [
group_id: "61",
id: "1",
code: "1",
name: "ASTRA MARGARINE 1KG",
bulkprice: "800.00",
description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ",
picture: [
"img/itemlist/astra/a1.png",
"img/itemlist/astra/a2.png"
],
qty: "2",
active: "0",
availableqty: "100",
itemprice: "400.00"
,
group_id: "61",
id: "1",
code: "4",
name: "KNOR CHICKEN CUBE 28S CONTAINER 280G",
bulkprice: "700.00",
description: " Interdum et malesuada fames ac ante ipsum primis in faucibus. Nam at enim sit amet ligula semper tempus.",
picture: [
"img/itemlist/knor/k1.png",
"img/itemlist/knor/k2.png"
],
qty: "10",
active: "0",
availableqty: "1",
itemprice: "25.00"
]
console.log('name',data)
for(let i=0;i<data.group_items.length;i++)
console.log('name',data.group_items[i].name)
【讨论】:
以上是关于使用 Typescript 和 ionic 在嵌套数组中搜索的主要内容,如果未能解决你的问题,请参考以下文章
在 Ionic 2 中使用第三方 cordova 插件和 TypeScript
如何在 Ionic 2 typescript 应用程序上使用没有类型定义的 javascript 库?
如何在使用 Typescript 的 Ionic App 上集成 API.AI?
带有 Ionic 2 Angular 2 和 TypeScript 的 OpenPGP
使用 Ionic + TypeScript + Angular 的混合应用程序
Ionic/React/TypeScript,使用 react-router history.push、history.replace 和 history.goBack 动画触发两次