gpt4 book ai didi

JavaScript assoc 数组添加键值对意外结果

转载 作者:行者123 更新时间:2023-11-28 13:27:28 24 4
gpt4 key购买 nike

这可能是完全显而易见的,但为什么我在向此 JavaScript 数组添加键值对时没有获得预期的 JSON 字符串?

下一步:正如代码所示,我实际上希望在对象中有两个数据集。

jsFiddle here - Weird, at the moment it only "works" in Chrome

var myKey = "123", myVal="Car";
var arrSummat = new Array();

$('#mybutt').click(function(){
arrSummat["987"] = "Boat";
//arrSummat[myKey] = myVal;
var test = JSON.stringify(arrSummat);
alert(test);
});

最佳答案

在 JavaScript 中构建关联数组*或 HashMap 或对象可能不是非常明显。一方面,一切最终都是一个对象,因此关联数组使用的语法对所有不是“关联数组”的东西都有效,这可能是产生困惑的地方。首先让我们解决当前的问题。您可能想使用对象而不是数组:

arrSummat = {};
arrSummat["987"] = "Boat";
console.log(JSON.stringify(arrSummat)); // => {"987":"Boat"}

当运行你的 fiddle (在 Chrome 中)时,我几乎得到一个包含 986 个 null 值的数组,然后是 "Boat" (我可能是错的,我不是手动计算该警报中的 null)。

既然您最初的问题已经解决,我想指出您可能想要开始做的两件事:

首选对象和数组的简写语法。这两个示例在功能上相同,但在大多数情况下您应该更喜欢第二个示例。

var myArr = new Array();
var myObj = new Object();

等同于:

var myArr = [];
var myObj = {};

简写甚至可以带有一些基本值:

var myArr = [1, 2, 3];
var myObj = {one: "1", two: "2"};

其次,切勿将 Array 对象用作数组以外的任何对象。这样做在语法上是有效的,但会产生意想不到的结果(正如您在此处看到的)。

  • JavaScript 中没有“关联数组”,但对象通常用作替代品并提供类似的功能。

Revised jsFiddle Link

关于JavaScript assoc 数组添加键值对意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27931162/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com