簡體   English   中英

根據屬性過濾對象數組

[英]Filter an object array based on the property

我存儲的數據在2d數組中。

的一個元素如下所示。 (不是賦值運算符)

someObjArray[5] === [{lastname:"foo", firstname:"bar", grade:10, userId:"foobar1234"},...]

對於上面的特定變量,我想像這樣對userId進行過濾。

var test = stuArray[5].filter(function(item) {
    return item['userId'];
});

導致:

test === [{lastname:"foo", firstname:"bar", grade:10, userId:"foobar1234"},...]

預期結果在哪里

test === ["foobar1234",...]

我也嘗試過使用點運算符獲得相同的結果。

我不認為過濾器是您在這里尋找的東西。

傳遞給filter方法的函數(在您的情況下為非匿名函數,但您也可以使用匿名函數)需要返回true或false。 這就是方法“過濾”數組的方式-它給您返回一個數組,其元素通過過濾器,或者作為參數傳遞給過濾器函數時返回true。

請注意,這不會更改原始數組。

您應該使用的是非常相似的map()函數。

請注意,就像filter()一樣,map()不會更改原始數組。

您可以這樣做:

var someObjArray = [{lastname:"foo", firstname:"bar", grade:10, userId:"foobar1234"}];
console.log(someObjArray.map(s => s.userId));

在線演示(jsFiddle)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM