如何有效地用许多静态键/值对填充Javascript对象文本
How to fill a Javascript object literal with many static key/value pairs efficiently?
创建Javascript对象的典型方法如下:
var map = new Object();
map[myKey1] = myObj1;
map[myKey2] = myObj2;
我需要创建这样一个映射,其中键和值都是String。我有一大组静态的配对要添加到地图中。
有没有任何方法可以在Javascript中执行这样的操作:
var map = { { "aaa", "rrr" }, { "bbb", "ppp" } ... };
还是我必须为每个条目执行这样的操作:
map["aaa"]="rrr";
map["bbb"]="ppp";
...
基本上,剩下的Javascript代码将在这个映射上循环,并根据"运行时"已知的标准提取值。如果这个循环作业有更好的数据结构,我也很感兴趣。我的目标是最小化代码。
在ES2015中,也就是JavaScript的ES6版本中,引入了一种称为Map
的新数据类型。
let map = new Map([["key1", "value1"], ["key2", "value2"]]);
map.get("key1"); // => value1
查看此参考以了解更多信息。
JavaScript的对象字面语法通常用于实例化对象(说真的,没有人使用new Object
或new Array
),如下所示:
var obj = {
'key': 'value',
'another key': 'another value',
anUnquotedKey: 'more value!'
};
对于阵列,它是:
var arr = [
'value',
'another value',
'even more values'
];
如果你需要对象中的对象,那也没关系:
var obj = {
'subObject': {
'key': 'value'
},
'another object': {
'some key': 'some value',
'another key': 'another value',
'an array': [ 'this', 'is', 'ok', 'as', 'well' ]
}
}
这种能够实例化静态数据的方便方法导致了JSON数据格式。
JSON有点挑剔,键和字符串值都必须用双引号括起来:
{"foo":"bar", "keyWithIntegerValue":123}
它可以很好地使用对象文字表示法:
var map = { key : { "aaa", "rrr" },
key2: { "bbb", "ppp" } // trailing comma leads to syntax error in IE!
}
Btw,实例化数组的常用方法
var array = [];
// directly with values:
var array = [ "val1", "val2", 3 /*numbers may be unquoted*/, 5, "val5" ];
和对象
var object = {};
你也可以做任何一件事:
obj.property // this is prefered but you can also do
obj["property"] // this is the way to go when you have the keyname stored in a var
var key = "property";
obj[key] // is the same like obj.property
尝试一下:
var map = {"aaa": "rrr", "bbb": "ppp"};
尝试此类型脚本
const MAP: Record<string, string> = {
key1: 'value1'
};
MAP[this.name]
您作为第一个编写的语法无效。您可以使用以下方法实现某些目标:
var map = {"aaa": "rrr", "bbb": "ppp" /* etc */ };
相关文章:
- Laravel 5.2动态下拉选择不填充(javascript)
- 单击按钮时填充javascript变量
- 使用 PHP 填充 Javascript 饼图
- 用 MySql 数据填充 JavaScript 数组
- 从代码后面填充javascript库
- 如何填充javascript数组
- 如何用随机值预填充 JavaScript 数组
- 使用 Browserify / Webpack(ES6 或 CommonJS)填充 JavaScript 资产
- 如何从 html 表数据填充 javascript 模型
- 填充 JavaScript 数组的更好方法
- 使用 PHP/MySQL 填充 JavaScript 数组
- 禁用表单字段,直到上一个字段已填充 JavaScript
- Rails + charts.js:如何使用数据库中的值填充 Javascript 数组
- 为什么 Netbeans 导航器窗格不使用特定文件名填充 JavaScript 文件
- 如何动态填充javascript函数的选项
- 用 mysql 表数据填充 Javascript OptionArray
- 从模板引擎填充javascript数组
- 如何使用SQL查询中的数据填充Javascript动态树
- 用php函数的返回值填充JavaScript变量
- 编辑自动填充javascript的设置超时