在javascript/jquery中使用产品名称及其缩写列表

问题描述:

我是JS的新手。在我正在扩展的应用程序中,我有不同的意见。我一个,我想看到完整的产品名称,而另一个只是他们的缩写。在javascript/jquery中使用产品名称及其缩写列表

我不想对它们进行硬编码,而是将它们写入文件中。什么是完成这个的好方法?我想到了创建一个JSON/XML /文本这将是这个样子

'product name 1' : 'abbr1' 
'product name 2' : 'abbr2' 
[...] 

文件,但我需要的结果在两个方向上工作,像无论是传球的缩写,获得全名或其他方式轮。我可以使用JavaScript和jQuery。

编辑:我不想对数据进行硬编码,因为产品可能会发生变化,所以我不会真的喜欢它们在源代码中。我认为这种经常改变的东西应该存储在源代码之外,这样可以更容易地进行更改。

+1

为了什么目的,你想写它到一个文件? –

+0

产品可能会发生变化,所以我不会真的喜欢它们在源代码中。我认为这种经常改变的东西应该存储在源代码之外,这样可以更容易地进行更改。 –

+1

这是所有客户端JavaScript吗? –

你可以在一个JSON文件中创建产品的行列。喜欢的东西:

[{name: "Product 1", abbr: "pr1"}, {name: "Product 2", abbr: "pr2}...] 

那么你可以使用jQuery's getJSON方法,例如:

$.getJSON("ajax/test.json", function(json) { 
    // do something with the json 
}); 

不过,他这样说。我没有看到这种方法带来的好处,因为JSON也会被硬编码。

编辑:其实我看到一个好处。这至少可以将数据源与数据检索分离开来。

+0

谢谢,我会用它。 –

+1

请注意,如果您不熟悉它,请阅读异步查询。 getJSON函数是异步的,这意味着在JSON上执行的函数不保证以顺序方式发生。 –

+0

感谢您的领导! –

把你自己的产品数据在全局数组:

<script> 
    function product(name, code) { 
    this.name = name; 
    this.code = code; 
    }; 
    var productArray = [ new product("Apple", "a"), new product("Orange", "o") ]; 

    // user array 
    for (var i = 0; i < productArray.length; ++i) 
    if (productArray[i].name == "Apple") 
     console.log(productArray[i].code); 
</script> 
+0

那么,正如我所说我是新来的JS(和一般的脚本语言),所以我是谁来判断..但没有一个更优雅的方式来实现这一目标?这些产品可能会发生变化,我认为强迫这类事情的源代码操作是不错的风格。 –

+0

@JacobS是的,它可以肯定地改变。因为您不需要“硬编码”数组,而是使用服务器端编写它。你使用的是什么服务器语言? (php,asp.net,JSP ...)? –

+0

嘿,谢谢你的帮助 - 我会用有用的喇嘛的方法寿。 –