我写了一个数组如下
const OBJECT = {
'3': 'History And Social Sciences',
'5': 'Humanities',
'8': 'Global Studies And Social Impact',
'10': 'Sanskrit'
};
var rou=[3,5,8,10];
我想在键与值匹配时获取字段值。有人知道吗?
答案 0 :(得分:1)
map
到rou
上,并从该键的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)