簡體   English   中英

JavaScript從數組過濾數據

[英]JavaScript filter data from array

我有3個數組:名字,姓氏,電子郵件:

var names = firstname.map(a => a.firstname);

    var uniqueNames = [];
    $.each(names, function(i, el){
        if($.inArray(el, uniqueNames) === -1) uniqueNames.push(el);
    });

    var lastnames = lastname.map(a => a.lastname);


    var uniqueLastNames = [];
    $.each(lastnames, function(i, el){
        if($.inArray(el, uniqueLastNames) === -1) uniqueLastNames.push(el);
    });

    var emails = email.map(a => a.email);

並且我正在嘗試按名字過濾電子郵件數組(名字后面將如何排列):

var result = emails.filter(email => !uniqueNames.find(name => email.includes(name)));

當我使用示例時它工作:

var emails = ['sAdam1@green.com','lessio@gmail.com'];

電子郵件:sAdam1@green.com被刪除。 很好的結果,但是當我使用時: var emails = email.map(a => a.email); 不起作用

console.log(emails); 給出的結果類似於字符串數組:[“ mail@example.com”,“ mail2@example.com”,...]

原始數據:電子郵件:john.doe @ example.com,doe @ hotmail.com,j.doe @ gmail.com,dennis @ gmail.com,cow @ boy.com名:john,dennis,alice姓:doe

結果郵件數組:cow@boy.com。 休息到垃圾桶。

期待得到幫助。 提前致謝

您可以通過檢查不需要的名稱數組來進行過濾。

 var emails = ['john.doe@example.com', 'doe@hotmail.com', 'j.doe@gmail.com', 'dennis@gmail.com', 'cow@boy.com'], firstnames = ['john', 'dennis', 'alice'], lastnames = ['doe'], names = [...firstnames, ...lastnames], filtered = emails.filter(e => !names.some(n => e.includes(n))); console.log(filtered); 

暫無
暫無

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

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