从文章:

发送一个JSON数组作为Dictionary<string,string>接收

我试图做同样的事情,因为那篇文章,唯一的问题是,我不知道什么键和值是前面。我需要动态添加键和值对,我不知道怎么做。

有人知道如何创建对象并动态添加键值对吗?

我试过了:

var vars = [{key:"key", value:"value"}];
vars[0].key = "newkey";
vars[0].value = "newvalue";

但这行不通。


当前回答

你可以创建一个类Dictionary,这样你就可以轻松地与Dictionary列表交互:

类字典{ 构造函数(){ 这一点。Items = {}; } (关键){ 在this.items中返回键; } 集(关键字,值){ 这一点。项目[key] = value; } 删除(关键){ If (this.has(key)){ 删除this.items(例子) 返回true; } 返回错误; } } var d = new Dictionary(); d.set(“value1”) “value2 d.set (2) d.set(3,“value3”) console.log (d.has (2)); d.delete (2); console.log (d.has (2));

其他回答

对var dict ={}的改进是使用var dict = Object.create(null)。

这将创建一个没有object的空对象。原型就是原型。

var dict1 = {};
if (dict1["toString"]){
    console.log("Hey, I didn't put that there!")
}
var dict2 = Object.create(null);
if (dict2["toString"]){
    console.log("This line won't run :)")
}

很简单:

var blah = {}; // make a new dictionary (empty)

or

var blah = {key: value, key2: value2}; // make a new dictionary with two pairs 

then

blah.key3 = value3; // add a new key/value pair
blah.key2; // returns value2
blah['key2']; // also returns value2

你可以创建一个类Dictionary,这样你就可以轻松地与Dictionary列表交互:

类字典{ 构造函数(){ 这一点。Items = {}; } (关键){ 在this.items中返回键; } 集(关键字,值){ 这一点。项目[key] = value; } 删除(关键){ If (this.has(key)){ 删除this.items(例子) 返回true; } 返回错误; } } var d = new Dictionary(); d.set(“value1”) “value2 d.set (2) d.set(3,“value3”) console.log (d.has (2)); d.delete (2); console.log (d.has (2));

你可以在Map中使用地图,像这样:

var sayings = new Map();
sayings.set('dog', 'woof');
sayings.set('cat', 'meow');

我碰巧在寻找类似的东西时遇到了这个问题。它给了我足够的信息来进行测试,以得到我想要的答案。因此,如果有人想知道如何动态地添加或查找JavaScript对象中的{key: 'value'}对,这个测试应该会告诉你所有你可能需要知道的东西。

var dictionary = {initialkey: 'initialValue'};
var key = 'something';
var key2 =  'somethingElse';
var value = 'value1';
var value2 = 'value2';
var keyInitial = 'initialkey';

console.log(dictionary[keyInitial]);

dictionary[key] =value;
dictionary[key2] = value2;
console.log(dictionary);

输出

initialValue
{ initialkey: 'initialValue',
  something: 'value1',
  somethingElse: 'value2' }