gpt4 book ai didi

javascript - 为什么要用 array.push() 来做一个对象?

转载 作者:数据小太阳 更新时间:2023-10-29 04:42:54 25 4
gpt4 key购买 nike

我正在阅读 How can I get query string values in JavaScript?在 Stackoverflow 上,第一个回复中的这段代码让我想知道为什么要这样使用“vars.push()”?

function getUrlVars()
{
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}

但不是这样的:

var vars=[];
...
vars.push(hash[0]);
vars[hash[0]] = hash[1];

我重写了代码:

var vars={};
...
vars[hash[0]] = hash[1];

并且有效。现在的问题是:

  • 为什么有人会使用数组来进行这种回复?
  • 为什么有人会使用 ARR.push(KEY) 然后再使用 ARR[KEY]=VAL 格式?

最佳答案

这导致 vars 既是键数组又是字典。
我能想到的唯一好的理由是保持查询参数的顺序,即not defined在字典里。

不管怎样,我会注意到这个函数删除了重复的查询参数——它只保留最后一个值(尽管键会被多次插入到数组中)

关于javascript - 为什么要用 array.push() 来做一个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10053102/

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