2017-04-26 55 views
0

我寫了一些javascript代碼,以便我可以使用MixPanel的JQL語言。使用javascript通配符返回實際值

下面的代碼不起作用,因爲*不是Javascript中的通配符。但是我已經將其包含在內以顯示我想要通配符的位置。

我知道我可以使用indexOf()函數和startsWith(),但它們實質上只返回true/false。我該如何返回實際值?

function main() { 
    return Events({ 
    from_date: '2017-03-01', 
    to_date: '2017-03-31' 
    }) 
     .filter(function(event) { return event.name == "PartsViewed" }) 
     .filter(function(event){ 
     return event.properties.PartName =="LTC3784*" && event.properties.PartName == "1EDI60N*"; 
    }) 
    .groupBy(["properties.manufacturer"], mixpanel.reducer.count()); 
} 

回答

0

,如果你想return,而不是filter你需要的功能.map。 map函數返回你定義的內容,而過濾器只是過濾數組而不修改輸出。

array 
.filter(function(event){ 
    let name = event.properties.PartName; 
    return name.startsWith("LTC3784") || name.startsWith("1EDI60N"); 
}) 
.map(function(event) { 
    return event.properties.PartName; 
}) 

所以首先您篩選使用現有的功能正常。 比你的