从两个数组创建/合并对象哈希映射

Create/merge an object hashmap from two arrays

本文关键字:合并 对象 哈希 映射 创建 数组 两个      更新时间:2023-09-26

我正在做一个需要我创建哈希图的项目,这是我的第一个项目,经过研究,我被卡住了。我需要从两个数组创建地图。

阵列 1:

var arrayOne = [ "board", "admin" ]

这些将被添加到默认值为 false 的地图对象中,我可以进入这一部分:

var myMap = {
    board: false,
    admin: false
}

阵列 2:

var arrayTwo = [ "board" ]

这里只存在"板",所以我想将值转换为"true"。我被困在下一步该去哪里,所以我最终得到:

var myMap = {
    board: true,
    admin: false
}

这是我到目前为止的脚本:

var myMap = {};
var arrayOne = [ "board", "admin" ];
for (var i = 0; i < arrayOne.length; i++) {
    var a = arrayOne[i];
    myMap[a] = false; // sets default value
}

非常感谢任何帮助做"下一步"以合并两者,谢谢。

我认为您应该继续以下内容:

for (var i = 0; i < arrayTwo.length; i++) {
    if (arrayTwo[i] in myMap)
        myMap[arrayTwo[i]] = true;
}

。将属性设置为仅当地图中存在属性时才true

使用 indexOf() 方法检查项目是否在第二个数组中

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf

http://www.w3schools.com/jsref/jsref_indexof_array.asp

var myMap = {};
var arrayOne = [ "board", "admin" ];
for (var i = 0; i < arrayOne.length; i++) {
    var a = arrayOne[i];
    myMap[a] = false; // sets default value
    if ( arrayTwo.indexOf( a ) != -1 )
    {
        myMap[a] = true;
    }
}

先做一个然后做另一个...

var i;
var myMap = {};
var arrayOne = [ "board", "admin" ];
for (i = 0; i < arrayOne.length; i++) {
     myMap[arrayOne[i]] = false;
}
var arrayTwo = [ "board" ];
for (i = 0; i < arrayTwo.length; i++) {
     myMap[arrayTwo[i]] = true;
}

ES5 版本

arrayOne.forEach(function(item){
    myMap[item] = false;
});
arrayTwo.forEach(function(item){
    (item in myMap) && (myMap[item] = true);
});