javascript - 将选定的单词计数到 JS 中的新对象中

标签 javascript arrays object key

我有:

function selectMutualKeys(arr, obj) {
  var o = {};
  for (var i = 0; i < arr.length; i++) { 
    var key = arr[i];  
    if ( arr[i] === obj[key] ) {
      o[key] = obj[key] ;
    }
  }
  return o;
}

应该返回一个仅包含相互存在的键/值的新对象:

var arr = ['a', 'c', 'e'];
var obj = { a: 1, b: 2, c: 3, d: 4};
var out = selectMutualKeys(arr, obj);
console.log(out); // --> { a: 1, c: 3 } 

我错过了什么?

最佳答案

您可以使用 in operator 检查键是否是对象的属性。 ,然后赋值。

if (key in obj) {

function selectMutualKeys(arr, obj) {
    var o = {}, key, i;
    for (i = 0; i < arr.length; i++) { 
        key = arr[i];  
        if (key in obj) {
            o[key] = obj[key];
        }
    }
    return o;
} 

var arr = ['a', 'c', 'e'],
    obj = { a: 1, b: 2, c: 3, d: 4 },
    out = selectMutualKeys(arr, obj);

console.log(out); // { a: 1, c: 3 }

关于javascript - 将选定的单词计数到 JS 中的新对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41590916/

相关文章:

php - 以编程方式向 JSON 添加数据的最简单方法是什么?

C# 数组内容不显示,但类型是

javascript - 未捕获的类型错误 : cannot call method 'cookie' of undefined

javascript - 如何启用和禁用 selectmenu JQuery 移动版

javascript - 使用ajax在按下按钮然后刷新时调用php函数

php - compact() 与 PHP 上的手动数组声明

php - 使用 PHP 将 MySQL 表中的数组内容分成多行

Javascript: var map = {};变量列表 = [];

javascript - 尝试将动画重构为类对象,如何构造其相互关联的部分

javascript - 如何在 javascript 中实现 map 或 sorted-set