从文章:
发送一个JSON数组作为Dictionary<string,string>接收
我试图做同样的事情,因为那篇文章,唯一的问题是,我不知道什么键和值是前面。我需要动态添加键和值对,我不知道怎么做。
有人知道如何创建对象并动态添加键值对吗?
我试过了:
var vars = [{key:"key", value:"value"}];
vars[0].key = "newkey";
vars[0].value = "newvalue";
但这行不通。
从文章:
发送一个JSON数组作为Dictionary<string,string>接收
我试图做同样的事情,因为那篇文章,唯一的问题是,我不知道什么键和值是前面。我需要动态添加键和值对,我不知道怎么做。
有人知道如何创建对象并动态添加键值对吗?
我试过了:
var vars = [{key:"key", value:"value"}];
vars[0].key = "newkey";
vars[0].value = "newvalue";
但这行不通。
当前回答
JavaScript的Object本身就像一个字典。没有必要重新发明轮子。
var dict = {};
// Adding key-value -pairs
dict['key'] = 'value'; // Through indexer
dict.anotherKey = 'anotherValue'; // Through assignment
// Looping through
for (var item in dict) {
console.log('key:' + item + ' value:' + dict[item]);
// Output
// key:key value:value
// key:anotherKey value:anotherValue
}
// Non existent key
console.log(dict.notExist); // undefined
// Contains key?
if (dict.hasOwnProperty('key')) {
// Remove item
delete dict.key;
}
// Looping through
for (var item in dict) {
console.log('key:' + item + ' value:' + dict[item]);
// Output
// key:anotherKey value:anotherValue
}
小提琴
其他回答
既然你已经声明,你想要一个字典对象(而不是一个数组,像我假设一些理解),我认为这是你想要的:
var input = [{key:"key1", value:"value1"},{key:"key2", value:"value2"}];
var result = {};
for(var i = 0; i < input.length; i++)
{
result[input[i].key] = input[i].value;
}
console.log(result); // Just for testing
var dict = {};
dict['key'] = "testing";
console.log(dict);
就像python一样工作:)
控制台输出:
Object {key: "testing"}
如果有人需要动态创建字典对象,可以使用下面的代码片段
让var =[{关键:“关键”,价值:“价值”},{关键:“key2”价值:“value2”}); 让dict = {} vars.map (varItem = > { dict [varItem.key] = varItem.value }) console.log(东西)
对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 dictionary = {};//create new object
dictionary["key1"] = value1;//set key1
var key1 = dictionary["key1"];//get key1