4 回答

TA貢獻(xiàn)1833條經(jīng)驗(yàn) 獲得超4個(gè)贊
我會(huì)使用 Array.prototype.find 來查找具有待定狀態(tài)的項(xiàng)目,然后獲取其 count 屬性,如下所示:
const?{?count?}?=?x.find(({?status?}?=?{})?=>?status?===?'pending')?||?{}:
如果存在未決狀態(tài),這將為您提供計(jì)數(shù),如果不存在,則為未定義狀態(tài)。我在這里使用了解構(gòu)和默認(rèn)語法,如果您不熟悉它們,請查看我鏈接的文章。

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超5個(gè)贊
您可以使用過濾器,將找到所有具有待處理狀態(tài)的元素
const data = [{
status: "completed",
count: 2
},
{
status: "pending",
count: 3
}
];
const pending = data.filter(s => s.status === "pending");
console.log(pending.length ? "got pending" : "no pending")
console.log(pending.map(i=>i.count))

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個(gè)贊
如果保證只有 1 個(gè)元素帶有 "pending"?status
,那么使用Array.prototype.find根據(jù)其屬性值查找元素似乎是合適的status
:
const pendingCount = [{
? status: "completed",
? count: 2
}, {
? status: "pending",
? count: 3
}].find(el => el.status === "pending").count;
console.dir(`pending count = ${pendingCount}`);
如果數(shù)組中有多個(gè)“待定”項(xiàng)目并且您需要獲取所有項(xiàng)目的總和,那么使用 Array.prototype.filter?(刪除所有非“待定”項(xiàng)目)然后使用Array.prototype 可能最有意義。減少結(jié)果filter
以添加count
s。
const pendingSum = [{
? ? status: "completed",
? ? count: 2
? }, {
? ? status: "pending",
? ? count: 3
? }, {
? ? status: "pending",
? ? count: 5
? }, {
? ? status: "pending",
? ? count: 5
? }]
? .filter(el => el.status === "pending")
? .reduce((sum, el) => sum += el.count, 0);
console.dir(`sum of pending items count = ${pendingSum}`);

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超8個(gè)贊
const array = [
{status: "completed", count: 2},
{status: "pending", count: 3}
];
const pending = array.find(s => s.status === "pending");
if (pending) {
// Do whatever you want.
}
添加回答
舉報(bào)