JavaScript中通过键获取字典的值

3
在 JavaScript 脚本中,我创建了以下字典。
var dictionary =[];
$(function () {
  dictionary.push({
    key: @item.Key.ToShortDateString().ToString(),
    value: @Html.Raw(JsonConvert.SerializeObject(item.Value)),
  });
  alert(dictionary['2017-09-19']);
});

在弹窗中,它显示为 undefined。我该如何从此字典中读取值?


日期2017年09月19日被提前添加为键。 - maciejka
1
你有一个数组,它不是字典,也没有命名的键,而是索引。然而,你的数组包含对象。看起来你想要一个对象而不是数组。 - adeneo
事实证明,必须使用@Html.Raw(JsonConvert.SerializeObject将键保存,以便按键读取作为字符串保存的日期值。 - maciejka
2个回答

4

建议使用对象而不是数组

$(function () {
  var dictionary = {};
  dictionary[@item.Key.ToShortDateString().ToString()] = @Html.Raw(JsonConvert.SerializeObject(item.Value));
  alert(dictionary['2017-09-19']);
});

1
变量字典是一个由对象组成的数组。如果你想要访问它,需要通过索引来访问。

DEMO

 var dictionary = [];
 dictionary.push({
    key: '2017-09-19',
    value: 'test',
  });
var result = dictionary.filter(function(element) {
    return element.key == '2017-09-19';
});

if (result.length > 0) {
    // we have found a corresponding element
     console.log(result[0].value);
}


这将会很慢。它的时间复杂度是O(n)。 - Lorenz Meyer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接