开发者问题收集

如何计算嵌套数组中的字符串数量?

2019-06-20
604

有一个嵌套的 names 数组,其中只有字符串,需要循环查找每个字符串出现的次数。由于两个元素都有“bob”,因此结果函数应该返回 2。即使数组是嵌套的,如何搜索字符串?

var names = ["bob", ["steve", "michael", "bob", "chris"]];

function loop(){ 
    /* .... */
}

var result = loop(names, "bob");
console.log(result); // 2
3个回答

示例

var names = ["bob", ["steve", "michael", "bob", "chris"]];

function loop(names, searchString){ 
   var flattenArray = names.flat(Infinity);
   return flattenArray.filter(n => n === searchString).length;
}

var result = loop(names, "bob");
console.log(result); // 2
  
Vishnu
2019-06-20

您可以 展平 过滤 该数组,然后返回过滤后的数组的长度。

const names = ["bob", ["steve", "michael", "bob", "chris"]];

function loop ( arr, name ) {
  return arr.flat( Infinity ).filter( el => el === name ).length;
}

const result = loop(names, "bob");
console.log(result); // 2
Paul
2019-06-20

您可以使用 flatMap

var names = ["bob", ["steve", "michael", "bob", "chris"]];


console.log(names.flatMap(el => el === "bob").length)
Aziz.G
2019-06-20