[英]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.