gpt4 book ai didi

javascript - 如何在 Javascript 中将数据添加到二维 map

转载 作者:行者123 更新时间:2023-12-05 07:45:48 26 4
gpt4 key购买 nike

我主要使用 Java 进行开发,但我目前需要使用 JavaScript 完成一些工作。

我有需要按两个维度分组的数据:首先按性别,然后按语言。要分组的对象是这样的:

var items =[ {
"language":"english",
"gender":"male",
...//twelve other fields
},
...
]

这是我试过的:

var myMap = {};
for(var i=0; i<items.length;i++){
var item = items[i];
var _gender = item["gender"];
var _lang = item["language"];
myMap[_gender][_lang].push[item];
}

我以为上面的方法会起作用,但它不起作用。它不断返回此错误:

Uncaught TypeError: Cannot read property 'undefined' of undefined

注意:在 Java 中,我将创建一个数组映射。

最佳答案

一个问题:

当您调用 myMap[_gender][_lang].push[item]; 时,您实际上是在向对象 myMap 添加一个键,其中_gender 的当前值,并将其转换为一个对象,然后为其创建一个新键,设置为 _lang 的值。此外,.push() 是与数组 一起使用的函数,用于将新项目添加到数组的末尾。如果你想给一个对象添加一个新的键和值,你所要做的就是调用那个键并给它赋值。这是一个例子。

var obj = {
ex1 : 'example 1',
ex2 : 'example 2'
};

console.log(obj);

obj.ex3 = 'example 3';

console.log(obj);

//The code below will simply log 'undefined' in most consoles(it doesn't happen to do so in this snippet).
console.log(obj.ex4);

这是我的建议(假设我正确地理解了你想要做什么):

var items = [{
"language":"english",
"gender":"male",
},
//...more below
];

myMap = [];


for(var i = 0; i < items.length; i++){
myArray = [];
var item = items[i];
var _gender = item["gender"];
var _lang = item["language"];
myArray.push(_gender);
myArray.push(_lang);
myMap.push(myArray);
}

关于javascript - 如何在 Javascript 中将数据添加到二维 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41310695/

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