创建dictionary,将数组作为键值对中的值:javaScript

create dictonary with array as value in key value pair : java Script

本文关键字:javaScript 键值对 dictionary 数组 创建      更新时间:2023-09-26

我正在努力实现以下目标:

  Key                      value
fruit               apple,orange,banana,grapes
cooldrinks          pepsi,cococola,miranda
snaks               lays,kurkure

为此,我使用的代码为:

<script>
var vars = [{key:"key", value:"val1",value:"val2",value:"val3",value:"val4"}];
vars[0].key = "fruit";
vars[0].val1 = "apple";
vars[0].val2 = "orange";
vars[0].val3 = "banana";
vars[0].val4 = "grapes";
</script>

但对于大型词典来说,这是不可能的。我如何实现这样内容庞大的词典?有人能给我推荐一个最简单的方法吗?

在动态数组的情况下,我需要在代码中更改什么?

怎么样:

var data = [
  {fruit: ['apple','orange','banana','grapes']},
  {cooldrinks: ['pepsi','cocacola','miranda']},
  {snacks: ['lays','kurkure']}
]

您首先应该创建这个键/值对象:

function Pairs() {
    this.key= "",
    this.values= new Array()
}

这个对象将保存所有事物的键和值。

接下来,您需要创建一个字典数组来保存所有对:

var dictionary = new Array();

然后,创建您的对象,用数据填充它们,并将它们添加到字典:

var fruit = new Pairs();
fruit.key = "fruit";
fruit.values[0] = "banana";
fruit.values[1] = "Orange";
fruit.values[2] = "Apple";
dictionary.push(fruit);  //adding fruit to dictionary
var car = new Pairs();
car.key = "car";
car.values[0] = "Honda";
car.values[1] = "Toyota";
car.values[2] = "Ferrari";
dictionary.push(car);   //adding car to dicitonary

一旦字典被填充,您就可以访问如下对象:

dictionary.length; //get the length of all the objects present in dictionary
dictionary[0].key; //get the key of a particular object

请参阅此处的演示

为什么要使用数组?改为使用对象

var dictionary = {
   key1: ["value1", "value2"],
   key2: ["value3", "value4"]
};

如果您想获得所有密钥,可以使用Object.keys:

var allKeys = Object.keys(dictionary);

此外,您可以使用点语法索引语法:访问密钥

var key1value = dictionary.key1;
key1value = dictionary["key1"];

您可以使用js对象来完成这个

var dictionary = [
  { fruit: ['apple', 'orange', 'banana', 'grapes'] },
  { cooldrinks: ['pepsi', 'cocacola', 'miranda'] },
  { snacks: ['lays', 'kurkure'] }
];

然后你可以像这个一样访问它们

dictionary.fruit;     // returns apple, orange, banana, grapes
dictionary.snacks[0]; // returns lays

您甚至可以使用[]表示法

dictionary["fruit"][0];// returns apple