dbd.db
Version:
A Lightweight Schema-Free Object-Oriented LocalDatabase for Development and Production Purpose
40 lines (26 loc) • 874 B
JavaScript
const isEqual = require('./isEqual')
async function parseArray(filter, data) {
if (filter.length > data.length) return false
const parsed = []
let id = 0
while (id < data.length) {
if (parsed.length === filter.length) return true
let i = 0
while (i < filter.length) {
if (parsed.length === filter.length) return true
if (parsed.indexOf(i) > -1) continue
if (Array.isArray(filter[i]) && Array.isArray(data[id])) {
const res = await parseArray(filter[i], data[id])
if (res) parsed.push(i)
} else if (filter[i] instanceof Object && data[id] instanceof Object) {
const res = await isEqual(filter[i], Object.keys(filter[i]), data[id])
if (res) parsed.push(i)
} else if (filter[i] === data[id]) parsed.push(i)
i++
}
id++
}
if (parsed.length === filter.length) return true
return false
}
module.exports = parseArray