簡體   English   中英

如何使用javascript或lodash過濾嵌套數組

[英]How to filter nested arrays using javascript or lodash

我有太多這樣的嵌套數組

[['branch',12,'name','cofee'],['state',15,'name','tea'],['Country',12,'name','tea']['branch',15,'name','Choclate']]

我想過濾具有元素分支的數組,所以結果將像這樣

[['branch',12,'name','cofee'],['branch',15,'name','Choclate']]

有人可以幫我嗎

您應該提供一個謂詞進行filter ,以檢查數組是否包含'branch'

如果可以使用ES6,則可以:

 const data = [ ['branch', 12, 'name', 'cofee'], ['state', 15, 'name', 'tea'], ['Country', 12, 'name', 'tea'], ['branch', 15, 'name', 'Choclate'] ]; const processed = data.filter(d => (d.indexOf('branch') > -1)); console.log(processed); 

如果您不能使用ES6:

 const data = [ ['branch', 12, 'name', 'cofee'], ['state', 15, 'name', 'tea'], ['Country', 12, 'name', 'tea'], ['branch', 15, 'name', 'Choclate'] ]; const processed = data.filter(function (d) { return d.indexOf('branch') > -1; }); console.log(processed); 

您在數組中缺少逗號。 您正在處理2d數組,這是一個真正可以使用的簡單對象。 只需使用for循環在每個數組中查找項目[0]。

 var div = document.createElement("div"); var myArray = [['branch',12,'name','cofee'],['state',15,'name','tea'],['Country',12,'name','tea'],['branch',15,'name','Choclate']]; var filteredArray = [[]]; for (var i = 0; i < myArray.length; i++) { if(myArray[i][0] === 'branch'){ filteredArray.push(myArray[i]); } } var t = document.createTextNode(filteredArray); div.appendChild(t); document.body.appendChild(div); 

嗯,現代的方法是;

 var data = [['branch',12,'name','cofee'],['state',15,'name','tea'],['Country',12,'name','tea'],['branch',15,'name','Choclate']], filtered = data.filter(f => f.includes("branch")); console.log(filtered); 

暫無
暫無

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

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