javascript - 将数组值与对象键进行比较并将值设置为数组

标签 javascript arrays dynamic-arrays

我有一个数组和一个对象。我应该将数组值与对象键进行比较。如果两者都匹配,我应该将对象的值压入数组。

我已经通过以下逻辑实现了这一点。

  var arr = [{ "name": "Coal", "segmentId": null }, { "name": "Ash", "segmentId": null }];

    var obj = {
        "Ash": {
            "October 2015": "66",
            "segmentId": "66",
            "December 2015": "435",
            "November 2015": "34535"
        },
        "Coal": {
            "October 2015": "23455",
            "segmentId": "66",
            "November 2015": "3454",
            "December 2015": "345"
        }
    };

    document.writeln("Original Array : " + JSON.stringify(arr));

    for (var i = 0; i < arr.length; i++) {
        var keys = Object.keys(obj);
        for (var j = 0; j < keys.length; j++) {
            if (arr[i].name === keys[j]) {
                arr[i].segmentId = obj[keys[j]].segmentId;
            }
        }
    }

    document.writeln("Transformed Array : " + JSON.stringify(arr));

我想知道,是否有任何其他最好的方法来处理这个或任何 js 库以使其变得简单?

Fiddler Version

最佳答案

尝试使用 javascript 高阶函数:

arr.map(function(item){
  item["segmentId"] = obj[item["name"]]["segmentId"]
});

关于javascript - 将数组值与对象键进行比较并将值设置为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32844822/

相关文章:

javascript - 有没有办法使用 EXPORT * 导出 ES6 模块中的所有名称?

javascript - 如何在 JSFiddle 中链接外部 json 文件?

javascript - 如何在 React-Native 中使用 fetch 在 ComponentDidMount 中执行多个 API 调用?

javascript - 如何计算数组中值的个数?

python - 在 pandas/python 中,读取存储为字符串的数组

c - 当输入是以空格分隔的整数时,如何将动态创建的字符数组转换为整数数组

javascript - Angular 5 ngModel 不更新值

c++ - 大写字符,topper 是如何工作的?

c++ - 使用复制构造函数 C++ 时出现段错误

javascript - 变体数组自定义函数 Google Sheets?例如VBA