与多个数组匹配

By simon at 2019-05-16 • 0人收藏 • 20人看过

我从多个数组开始。 然后基于复选框选择,我想用项目数组中获取相关的值价格及经验数组。

输入类型"复选框"名称"食品杂货店"价值""输入类型"复选框"苹果"输入类型"复选框"名称"食品杂货店"价值""橙"

例如,如果选中了第二个复选框(值"apple") ,那么我需要能够单独获得它的值。

这就是我目前所知道的。 如何将选中的复选框值与项目数组,以便能够从价格,经验及很多数组? 我正在寻找一种在普通 javascript 中实现它的方法。

Let item ["peach","apple","orange"] ; let price [21,32,18] ; let exp [21,18,25] ; let lot [6,8,4] ; let crossCheck [] ; let items [] ; let items ('grocery') ; for (var i 0; i items.length; i + +){ if (items [ i ]. 输入'checkbox'& & items [ i ]。 检查正确){交叉检查。 推(项目[ i ])。 值) ; console.log (s)}}
3 个回复 | 最后更新于 2019-05-16
2019-05-16   #1

我认为使用对象数组的最佳方式。

Let array [{"item":"peach","price": 21,"exp": 21,"lot": 6} ,{"item":"apple","price": 32,"exp": 18,"lot": 8} ,{"item":"orange","price": 18,"exp": 25,"lot": 4}]

定义后你可以添加到交叉检查

Push (array [ i ])

希望这个解决方案能帮到你。 谢谢阅读

2019-05-16   #2

您不应该将这些值存储在不同的数组中。 当代码库增长并且不同的函数需要访问这些值时,依赖数组索引会对您产生不利影响。 只要使用一个对象-

{"apple": {"price": 32,"lot": 8}

这样,当你想知道苹果的价格和批量时,你可以直接做苹果,价格或苹果,很多没有卷积迭代或循环

2019-05-16   #3

你可以使用排列,减少以地图项目与您的各自的领域这样,我假设您的项目名称是唯一的。

Let items ["peach","apple","orange"] ; let price [21,32,18] ; let exp [21,18,25] ; let lot [6,8,4] ; let crossCheck [] ; const itemMap items.reduce ((((map,item,index)){ map [ item ][ price [ index ] ,exp [ index ] ,lot [ index ] ; return map; } ,{}) ; document.getElementsByName ('grocery'). Foreach ((item,index){ if (item.type'checkbox'& item.checked true){ crossCheck.push (item.value) ; }) ; crosscheck.forEach ((item,index){ console.log ('{ item } price is ${ itemMap [ item ][0]}') ; console.log ('${ item } exp is ${ itemMap [ item ][1]}') ; console.log ('$$$item } lot } lot is ${ map [ item ][2]}'}') ; item}') ;
输入类型"复选框"name"grocery value"peach"input type"checkbox"name"apple"checked type"checkbox name"grocery""value""orange"

登录后方可回帖

Loading...