Ux.elementFind
根据filters从数组中找匹配的元素,返回值为一个Array
源代码:
// Ux.Type.js
const elementFind = (data = [], filters) => {
Dg.ensureType(data, U.isArray, "Array");
let reference = data;
if (filters) {
for (const field in filters) {
if (filters.hasOwnProperty(field)) {
// 这里用双等号匹配,用于检查字符串和数值的比较
reference = reference.filter(
item => item[field] == filters[field]
);
}
}
}
return reference;
};
基本规则
- data为一个JavaScript钟的数组;
- 如果不传filters(undefined === filters),则返回原始Array数组;
- filters有多个时会层层过滤,过滤时的基本过滤条件使用双等号,不匹配类型(
71 == "71"这种也可); - 最终返回查找到的Array元素;
示例:
elementFindDatum: (reference, key, filters) =>
elementFind(Prop.onDatum(reference, key), filters),