如果键与数组值匹配,如何获取值

时间:2019-03-15 05:48:25

标签: javascript arrays function object

我写了一个数组如下

const OBJECT = {
    '3': 'History And Social Sciences',
    '5': 'Humanities',
    '8': 'Global Studies And Social Impact',
    '10': 'Sanskrit'
};

var rou=[3,5,8,10];

我想在键与值匹配时获取字段值。有人知道吗?

7 个答案:

答案 0 :(得分:1)

maprou上,并从该键的OBJECT中获取值:

const OBJECT = {
  '3': 'History And Social Sciences',
  '5': 'Humanities',
  '8': 'Global Studies And Social Impact',
  '10': 'Sanskrit',

};

var rou = [3, 5, 8, 10];
var values = rou.map(k => OBJECT[k]);
console.log(values);

答案 1 :(得分:0)

rou [0]为3,rou [1]为5,依此类推。您要检查的是值[3]的rou [0]是否是字典的键。

答案 2 :(得分:0)

您可以像这样从对象访问值

var value = OBJECT.rou[0] 

迭代“ rou”数组,并为每个值在OBJECT中找到对应的值

答案 3 :(得分:0)

   Iterator<String> it = jsonObject.keys(); 
   List<Integer> list=new ArrayList();
   while(it.hasNext()){
   int key = it.next(); 
   list.add(key);
   }

答案 4 :(得分:0)

遍历对象属性,并通过 indexOf 比较是否在arr中找到了该键(如果找到了该键的值)。

const OBJECT = {'3': 'History And Social Sciences','5': 'Humanities','8': 'Global Studies And Social Impact','10': 'Sanskrit','a': 'abc'};

var rou = [3, 5, 8, 10];

for (var property in OBJECT) {
  if (OBJECT.hasOwnProperty(property) && rou.indexOf(parseInt(property)) != -1) {

    console.log(OBJECT[property]);
  }
}

您也可以通过迭代数组来执行此操作,如果对象中存在array的元素,则获取该对象的值

    const OBJECT = {'3': 'History And Social Sciences','5': 'Humanities','8': 'Global Studies And Social Impact','10': 'Sanskrit','a': 'abc'};

    var rou = [3, 5, 8, 10];

    rou.forEach(function(element) {
      if (OBJECT[element] != undefined) {
        console.log(OBJECT[element]);
      }
    });

答案 5 :(得分:0)

使用ramdajs' pick,更容易。

R.pick(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, d: 4}
R.pick(['a', 'e', 'f'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1}

如果您有兴趣,请检查其implementation

答案 6 :(得分:0)

const OBJECT = {
    '3': 'History And Social Sciences',
    '5': 'Humanities',
    '8': 'Global Studies And Social Impact',
    '10': 'Sanskrit'
};

var rou=[3,5,8,10];

var res = Object.keys(OBJECT).reduce((acc, cur) => rou.indexOf(parseInt(cur)) !== -1 ? (acc.push(OBJECT[cur]), acc) : acc, [])

console.log(res)