console
const c = console.info;
function startsWith(str, prefix) {
return str.lastIndexOf(prefix, 0) === 0;
};
function getFieldMeta(name) {
fieldsMeta[name] = fieldsMeta[name] || {};
return fieldsMeta[name];
}
function getValidFieldsName() {
return fieldsMeta ? Object.keys(fieldsMeta).filter(name => !this.getFieldMeta(name).hidden) : [];
}
function getAllFieldsName() {
return fieldsMeta ? Object.keys(fieldsMeta) : [];
}
function getValidFieldsFullName(maybePartialName) {
const maybePartialNames = Array.isArray(maybePartialName) ? maybePartialName: [maybePartialName];
return getValidFieldsName()
.filter(fullName => maybePartialNames.some(partialName => (fullName === partialName || (startsWith(fullName, partialName) && ['.', '['].indexOf(fullName[partialName.length]) >= 0))));
}
const fieldsMeta = {
'a.c': 1,
'b[d]': 2
};
c(getValidFieldsFullName(['a','b']));
resetFields:传names,调用,不传调用getAllFieldsName获取所有的域名