我是javascript的初学者。
我正在尝试过滤到对象列表中。
例如,目标是如果类型与“小部件”不匹配,那么您将被排除在外。
我需要一个例子来做其余的事情
谢谢您的帮助
var ariastatesproperties = {
'aria-activedescendant': { type: 'relationship' }, // id reference
'aria-atomic': { type: 'live region', global: true, default: 'false', values: ['false', 'true'] },
'aria-autocomplete': { type: 'widget', default: 'none', values: ['both', 'inline', 'list', 'none'] },
'aria-busy': { type: 'live region', global: true, default: 'false', values: ['false', 'true'] },
'aria-checked': { type: 'widget', default: 'undefined', values: ['false', 'mixed', 'true', 'undefined'] },
'aria-colcount': { type: 'relationship' }, // integer
'aria-colindex': { type: 'relationship' }, // integer
'aria-colspan': { type: 'relationship' }, // integer
'aria-controls': { type: 'relationship', global: true }, // id reference list
'aria-current': { global: true, default: 'false', values: ['date', 'false', 'location', 'page', 'step', 'time', 'true'] }
}
这是我要在过滤时执行的测试的示例。
我想保持相同的结构。
这是个好方法吗?
我有一个错误,因为每个都不起作用
createTest({
lang: 'fr',
name: "Test sur ARIA",
query: Object.entries(ariastatesproperties),
filter:
function(e){
return ariastatesproperties[e].type=='widget'}.forEach(function(e){obj[e]=ariastatesproperties[e]})
})
答案 0 :(得分:0)
使用过滤器和forEach循环
var ariastatesproperties = {
'aria-activedescendant': { type: 'relationship' }, // id reference
'aria-atomic': { type: 'live region', global: true, default: 'false', values: ['false', 'true'] },
'aria-autocomplete': { type: 'widget', default: 'none', values: ['both', 'inline', 'list', 'none'] },
'aria-busy': { type: 'live region', global: true, default: 'false', values: ['false', 'true'] },
'aria-checked': { type: 'widget', default: 'undefined', values: ['false', 'mixed', 'true', 'undefined'] },
'aria-colcount': { type: 'relationship' }, // integer
'aria-colindex': { type: 'relationship' }, // integer
'aria-colspan': { type: 'relationship' }, // integer
'aria-controls': { type: 'relationship', global: true }, // id reference list
'aria-current': { global: true, default: 'false', values: ['date', 'false', 'location', 'page', 'step', 'time', 'true'] }
}
var obj={};
Object.keys(ariastatesproperties).filter(function(e){return ariastatesproperties[e].type=='widget'}).forEach(function(e){obj[e]=ariastatesproperties[e]})
console.log(obj)
答案 1 :(得分:0)
您可以使用Object.entries()
函数“查询”对象
const data = {
'aria-activedescendant': { type: 'relationship' }, // id reference
'aria-atomic': { type: 'live region', global: true, default: 'false', values: ['false', 'true'] },
'aria-autocomplete': { type: 'widget', default: 'none', values: ['both', 'inline', 'list', 'none'] },
'aria-busy': { type: 'live region', global: true, default: 'false', values: ['false', 'true'] },
'aria-checked': { type: 'widget', default: 'undefined', values: ['false', 'mixed', 'true', 'undefined'] },
'aria-colcount': { type: 'relationship' }, // integer
'aria-colindex': { type: 'relationship' }, // integer
'aria-colspan': { type: 'relationship' }, // integer
'aria-controls': { type: 'relationship', global: true }, // id reference list
'aria-current': { global: true, default: 'false', values: ['date', 'false', 'location', 'page', 'step', 'time', 'true'] }
};
let result = Object.entries(data).filter(([key, value]) => value.type == 'widget');
console.log(result);