JS最佳实践对象列表与数组对值对

时间:2016-11-10 03:19:08

标签: javascript arrays json

我正在开展一个学习项目(基本上我正在构建一个基于Node-Express的网站来学习Node-Express)。 我需要制作一个菜单',我正在努力寻找用JSON表示它的最佳方式(然后在HTML表格中使用)。 我想到的选项是:

{"menu" : [{"coffee": 2.00}, {"juice": 3.50}, {"smoothy": 4.00}]} 

{"menu" : {"coffee": 2.00, "juice": 3.50, "smoothy": 4.00}}

{"menu" : [{"item": "coffee", "price": 2.00}, {"item": "juice", "price": 3.50}, {"item": "smooth", "price": 4.00} ]}

我找到了处理上述所有方法的方法,但我想了解哪一个是我的方案的最佳选择(也可能是为什么其他方案不是)。

2 个答案:

答案 0 :(得分:1)

var menu = {"coffee": 2.00, "juice": 3.50, "smoothy": 4.00}

$(function() {
   //FILTER example
   var filter =  _.pick(menu, function(num){ return num % 2 == 0; });
   console.log(filter)
})
<script src="http://underscorejs.org/underscore.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

我会选择这个: -

var menu = {"coffee": 2.00, "juice": 3.50, "smoothy": 4.00}

我有很多理由: -

  • 易于维护(简单的键值对)
  • 易于迭代
  • 根据项目名称
  • 轻松检索值
  • 易于过滤(就像您希望根据价格过滤可能很简单或可能是价格范围)

答案 1 :(得分:1)

第三个更加语义和友好。您可以轻松地遍历它们并使用item进行其他操作,例如if (item == something),它看起来更具可读性。