Tengo una matriz de datos de objetos, en cada objeto tengo una matriz anidada, en esa matriz necesito eliminar el objeto si el elemento tiene una matriz.
Datos de entrada :-
const data = [{"userDetails":[{"username":"Sai ","profileUrl":"","_id":4},{"username":"Mohamed Abu","profileUrl":"","_id":1},4,1]},{"userDetails":[{"username":"Sai ","profileUrl":"","_id":4},{"username":"Mohamed Abu","profileUrl":"","_id":1},4,1]},{"userDetails":[{"username":"Sai ","profileUrl":"","_id":4},4]},{"userDetails":[{"username":"Mohamed Abu","profileUrl":"","_id":1},1]}]Datos de salida esperados: -
data = [ { userDetails: [4, 1], }, { userDetails: [4, 1], }, { userDetails: [4] }, { userDetails: [1] }, ];Por favor ayúdenme en estos problemas.
Gracias por adelantado.
El siguiente fragmento debería hacer el trabajo.
data.map(x => removeNestedObj(x)) function removeNestedObj(x) { x.userDetails = x.userDetails.filter(y => Number.isInteger(y)) return x; } const data = [{"userDetails":[{"username":"Sai ","profileUrl":"","_id":4},{"username":"Mohamed Abu","profileUrl":"","_id":1},4,1]},{"userDetails":[{"username":"Sai ","profileUrl":"","_id":4},{"username":"Mohamed Abu","profileUrl":"","_id":1},4,1]},{"userDetails":[{"username":"Sai ","profileUrl":"","_id":4},4]},{"userDetails":[{"username":"Mohamed Abu","profileUrl":"","_id":1},1]}]; let finalData = data.map(a => a.userDetails) //get userDetails array .map(a => a.filter(x => typeof x !== 'object')) //remove objects from array .map(a => { return {userDetails: a} //recreate object with key userDetails }); console.log(finalData);Puede usar el map y filter y comparar con typeof igual que:
const data = [{ "userDetails": [{ "username": "Sai ", "profileUrl": "", "_id": 4 }, { "username": "Mohamed Abu", "profileUrl": "", "_id": 1 }, 4, 1] }, { "userDetails": [{ "username": "Sai ", "profileUrl": "", "_id": 4 }, { "username": "Mohamed Abu", "profileUrl": "", "_id": 1 }, 4, 1] }, { "userDetails": [{ "username": "Sai ", "profileUrl": "", "_id": 4 }, 4] }, { "userDetails": [{ "username": "Mohamed Abu", "profileUrl": "", "_id": 1 }, 1] }] // for removing object in userDetails const result = data.map(obj => ({userDetails: obj.userDetails.filter(e => typeof e !== 'object')})) console.log(result) // for getting numbers in userDetails const result1 = data.map(obj => ({userDetails: obj.userDetails.filter(e => typeof e === 'number')})) console.log(result1)