首页 > 解决方案 > 什么是正确的一个数组/对象或组合

问题描述

我在 javascript 中尝试了第一步,所以请原谅我的遗漏:-)

我想创建一个数据变量来以这样的方式存储数据

MYDATA['FIRST_ELEMENT']['ABCKEY1']=VALUE
                       ['ABCKEY2']=VALUE
                       ['ABCKEY2']=VALUE

MYDATA['SECOND_ELEMENT']['ABCKEY1']=VALUE
                        ['ABCKEY2']=VALUE
                        ['ABCKEY2']=VALUE
...

正如我所读到的,javascript 中的数组不能与字母数字键一起正常工作,所以也许我应该创建一个对象或数组和对象的组合?

希望,有人可以帮助我并解释我这样做的正确方法是什么,

多谢。

标签: javascript

解决方案


这可以通过单个对象或对象数组来实现。使用对象数组的一个优点是您可以对其进行迭代并创建项目列表或表结构等。

// using an object

var MYDATA_OBJ= {
  FIRST_ELEMENT: {
    ABCKEY1: 'value 1.1',
    ABCKEY2: 'value 1.2',
    ABCKEY3: 'value 1.3'
   },
  SECOND_ELEMENT: {
    ABCKEY1: 'value 2.1',
    ABCKEY2: 'value 2.2',
    ABCKEY3: 'value 2.3'
   }
 };


console.log(MYDATA_OBJ.FIRST_ELEMENT.ABCKEY2); // gives value1.2
console.log(MYDATA_OBJ.SECOND_ELEMENT.ABCKEY3); // gives value2.3

// to alter the value of a given element the syntax would be 
MYDATA_OBJ.FIRST_ELEMENT.ABCKEY2 = 'newValue1.2';
console.log(MYDATA_OBJ.FIRST_ELEMENT.ABCKEY2); // gives newValue1.2

// using an array

var MYDATA_ARR= [{
    ABCKEY1: 'value 1.1',
    ABCKEY2: 'value 1.2',
    ABCKEY3: 'value 1.3'
   }, {
    ABCKEY1: 'value 2.1',
    ABCKEY2: 'value 2.2',
    ABCKEY3: 'value 2.3'
   }
 ];


console.log(MYDATA_ARR[0].ABCKEY2); // gives value1.2
console.log(MYDATA_ARR[1].ABCKEY3); // gives value2.3


// to alter the value of a given element the syntax would be 
MYDATA_ARR[0].ABCKEY2 = 'newValue2.2';
console.log(MYDATA_ARR[0].ABCKEY2); // gives newValue2.2


推荐阅读