gpt4 book ai didi

Javascript 数组 - 将两个数组合并为一个

转载 作者:行者123 更新时间:2023-11-29 16:17:18 25 4
gpt4 key购买 nike

我有两个数组,一个是国家名称,另一个是货币类型。我想将它们合并在一起并使用国家键而不是货币数组。实现这一目标的最佳方法是什么?

这就是我的代码现在的样子:

var country = new Array();
country["SEK"] = 'Sweden';
country["USD"] = 'United states';
var currencies = ["SEK","USD"];
var options = '';

for (var i = 0; i < currencies.length; i++) {
options += '<option value="' + currencies[i] + '" id="' + currencies[i] + '">' + currencies[i] + ' (' + country[currencies[i]] + ')</option>';
}

最佳答案

一个常见的误解是您可以只使用它:

for (var currency in country) {
result += { ... something done with both currency and country[currency] ... };
}

这里的问题是哈希在 JS 中在技术上是无序的,所以你不能保证这些选项的顺序相同。

常见的替代方法是使用对象数组:

var countriesData = [
{
country: 'Sweden',
currency: 'SEK'
},
{
country: 'United States',
currency: 'USD'
}
];
for (var i = 0, l = countriesData.length; i < l; i++) {
result += { something of countriesData[i].currency and countriesData[i].country };
}


作为旁注,请考虑这个...

var country = new Array();
country["SEK"] = 'Sweden';
country["USD"] = 'United states';
console.log(country.length); // wait, what?

... 并且 0 将被记录,而不是 2 - 正如预期的那样。同样,JS 中没有“类 PHP 关联数组”这样的东西:有对象和数组(技术上也是对象;typeof country 会给你“对象”字符串)。

所以这就是这里发生的事情:你创建了一个Array对象,它继承了Array.prototype的所有属性(比如length),特别是。现在,您使用两个属性扩展此数组 - 'SEK' 和 'USD';但这与使用 push 或一些类似方法将这些字符串插入数组不同!这就是为什么它的 length 保持不变,引入了困惑和困惑。 )

关于Javascript 数组 - 将两个数组合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13491555/

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