gpt4 book ai didi

javascript - 从 2 个数组创建一个字典( MAP )

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:37:00 26 4
gpt4 key购买 nike

假设我有字符串数组(但它应该与数字数组一起工作)。

我想在它们之上创建一个 Map 对象,其中一个的值 2 作为键,其他的作为值,但基本上是为了建立关系。下一步是从 2 个对象数组创建一个映射,但这有点复杂。

不幸的是,到目前为止我的方法不起作用(因为几个小时尝试让它起作用),因为我得到第二个值 Map Iterator 要么用于对象数组

let pairsMap = new Map(); 
let productsMap = new Map();
let engWords = ['house','gift','zoo','tidy','flat','to play',' to see','boy','ice cream']
let itaWords = ['casa','regalo','zoo','ordinato','appartamento','giocare','guardare','ragazzo','gelato']
let pairsMap = new Map();
let productsMap = new Map();
let products = [
{
name: "chair",
inventory: 5,
unit_price: 45.99,
client:'MG Gmbh'
},
{
name: "table",
inventory: 10,
unit_price: 123.75,
client : "XYZ"
},
{
name: "sofa",
inventory: 2,
unit_price: 399.50,
client : "MongoDB"
}];

let clients =[
{
name:"MG Gmbh",
address: 'Linen street',
country: 'Germany'
},
{
name:'XYZ',
address:'Mongomery street',
country: 'USA'
},
{
name:'MongoDB',
address: 'NoSQL road',
country: 'UK'
},
{
name:'Zeppelin',
address: 'lienestraße',
country: 'Germany'
}];

for( val in engWords){

const nk = engWords[val];
engWords.forEach(function(element) {
const v = pairsMap.values();
pairsMap.set(nk,v);
} )
}

for (let [b, z] of pairsMap){
console.log(b, " -> ", z)
}

function groupBy(objectArray, property) {
return objectArray.reduce(function (acc, obj) {
var key = obj[property];
if (!acc[key]) {
acc[key] = [];
}
acc[key].push(obj);
return acc;
}, {});
}


let clients_name = console.log(groupedClients);


for( val in groupedClients){

const nk = groupedClients[val];
products.forEach(function(element) {
const v = productsMap.values();
productsMap.set(nk,v);

} )
}

这是我想得到的结果(来自 engWords 和 itaWords)

house  ->  casa 
gift -> regalo
zoo -> zoo
tidy -> ordinato
flat -> appartamento
to play -> giocare
to see -> guardare
boy -> ragazzo
ice cream -> gelato

最佳答案

我找到了我遗漏的地方,至少对于 2 个数组,没有为 map 的“值”使用正确的“索引”,所以这种方法有效:

for( val in engWords){

const nk = engWords[val];
engWords.forEach(function(element) {
pairsMap.set(nk,itaWords[val]);
} )
}

for (let [b, z] of pairsMap){
console.log(b, " -> ", z)
}

并且对对象数组进行更改也同样有效,但在
使用按名称分组:

for( val in clients){

const nk = clients[val];
products.forEach(function(element) {
productsMap.set(nk,products[val]);
} )
}

虽然关系的顺序仍然是原来的顺序 数组,所以顺序仍然不是动态的。

[更新]

我能够比较检查数组的元素是否也在 Map 中(另一个目标),并对上面的内容进行了稍微修改,但似乎它吸收了太多的 Chrome CPU,因为我的 Chrome 任务管理器文件占用了超过 109% 的 GPU(浏览器),这对我来说很奇怪。

let m = ['casa','house']; 

Array.from(newMap.keys()).forEach((k, i) => {
var values = newMap.get(k);
for(let j = 0;j < m.length ; i++){
if(m[i] == values){
console.log(m[i]);
}
}
})

关于javascript - 从 2 个数组创建一个字典( MAP ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56091913/

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