[英]Find properties that are null for every JavaScript object in an array
例如,如果我有一個 JavaScript 對象數組,例如:
var jsObjects = [
{a: 1, b: 2, c: null, d: 3, e: null},
{a: 3, b: null, c: null, d: 5, e: null},
{a: null, b: 6, c: null, d: 3, e: null},
{a: null, b: 8, c: null, d: 1, e: null}
];
我希望輸出為 ["c", "e"]。
我當前的解決方案是為每列調用一個函數並循環遍歷 jsObjects:
function isAllNull(col) {
var allNulls = true;
for (var i = 0; i < data.length; i++) {
if (jsObjects[i].col != null) {
allNulls = false;
break;
}
}
}
但是我希望這個函數更通用,以便它可以使用任意數量的任意簡單(即非對象)屬性的 jsObjects。 數組中的對象都具有相同的屬性。
如果您保證數組中的每個對象都具有相同的屬性,則:
reduce
鍵並測試原始數組中的every
鍵是否為null
every
鍵都返回 true,則在輸出中包含該鍵例子:
var jsObjects = [ {a: 1, b: 2, c: null, d: 3, e: null}, {a: 3, b: null, c: null, d: 5, e: null}, {a: null, b: 6, c: null, d: 3, e: null}, {a: null, b: 8, c: null, d: 1, e: null} ]; function nullCols(arr) { var keys = Object.keys(arr[0]); var nulls = keys.reduce((output, key) => { if (arr.every(item => item[key] === null)) { output.push(key); } return output; }, []); return nulls; } console.log(nullCols(jsObjects));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.