Javascript Jquery将两个数组(键、值)关联到一个具有重复键的数组中
如果阵列不可用,请提前感谢Javascript Jquery将两个数组(键、值)关联到一个具有重复键的数组中,javascript,Javascript,如果阵列不可用,请提前感谢 var animals = ['Cow', 'Cow', 'Dog', 'Cat']; var sounds = ['Moo', 'Oink', 'Woof', 'Miao']; 如何获得这样的assoc数组 // returns {'Cow': 'Moo', 'Cow': 'Oink', 'Dog': 'Woof', 'Cat': 'Miao'} JS Fiddle包含所有3个选项: 您需要一个散列/关联数组,循环并按索引创建一个,但是散列中不能有重复的键,因
var animals = ['Cow', 'Cow', 'Dog', 'Cat'];
var sounds = ['Moo', 'Oink', 'Woof', 'Miao'];
如何获得这样的assoc数组
// returns {'Cow': 'Moo', 'Cow': 'Oink', 'Dog': 'Woof', 'Cat': 'Miao'}
JS Fiddle包含所有3个选项: 您需要一个散列/关联数组,循环并按索引创建一个,但是散列中不能有重复的键,因此您可能需要探索其他数据结构 纯散列
var animals = ['Cow', 'Cow', 'Dog', 'Cat'];
var sounds = ['Moo', 'Oink', 'Woof', 'Miao'];
var hash = {};
for(i = 0; i < animals.length; i++) {
hash[animals[i]] = sounds[i];
}
console.log(hash);
var-animals=['Cow','Cow','Dog','Cat'];
变量声音=['Moo','Oink','Woof','Miao'];
var hash={};
对于(i=0;i
这只会显示Cow一次,如果您想让Cow对具有非唯一键,则需要创建一个哈希数组
散列数组
var animals = ['Cow', 'Cow', 'Dog', 'Cat'];
var sounds = ['Moo', 'Oink', 'Woof', 'Miao'];
var arr = [];
for(i = 0; i < animals.length; i++) {
var hash = {};
hash[animals[i]] = sounds[i];
arr.push(hash);
}
console.log(arr);
var-animals=['Cow','Cow','Dog','Cat'];
变量声音=['Moo','Oink','Woof','Miao'];
var-arr=[];
对于(i=0;i
但是,请注意,数组的索引现在是数字的,但您可以通过搜索来查找您的值
第三种选择:
数组散列(最佳)
//Paul Rob的数组哈希建议
动物变量=[‘牛’、‘牛’、‘狗’、‘猫’];
变量声音=['Moo','Oink','Woof','Miao'];
var hashOfArr=[];
对于(i=0;i
简短回答
你真正想要的是不可能的。对象不能有多个键
我的建议
有一个对象,其中每个键的值都是一个数组。如果一只动物有多个声音,你只需将它推入阵列即可
var
animals = ['Cow', 'Cow', 'Dog', 'Cat'],
sounds = ['Moo', 'Oink', 'Woof', 'Miao'],
result = {};
for(i = 0; i < animals.length; i++) {
result[animals[i]]
? result[animals[i]].push(sounds[i])
: result[animals[i]] = [sounds[i]];
}
var
动物=[‘牛’、‘牛’、‘狗’、‘猫’],
声音=['Moo','Oink','Woof','Miao'],
结果={};
对于(i=0;i
你的意思是“猪”代表第二头“牛”,对吗?一个对象不能有两个相同的键。如何?编写一个算法并编写代码。这里没有人会为你编码。这不是SO的目的。使用散列数组似乎更明智,例如,
{'Cow':['Moo','Oink'],'Dog':['Woof'],'Cat':['Miao']}
我在写了它之后也在想同样的事情,让我再添加一个例子
var
animals = ['Cow', 'Cow', 'Dog', 'Cat'],
sounds = ['Moo', 'Oink', 'Woof', 'Miao'],
result = {};
for(i = 0; i < animals.length; i++) {
result[animals[i]]
? result[animals[i]].push(sounds[i])
: result[animals[i]] = [sounds[i]];
}