Node.js 计数干草堆中的针数,而不考虑干草堆的字符顺序

Node.js 计数干草堆中的针数,而不考虑干草堆的字符顺序,node.js,needle,Node.js,Needle,我有一个练习,我需要数一数大海捞针的眼压,而不管大海捞针的大小 console.log(countNeedle('balloon', 'balloonballoon')) // response 2 console.log(countNeedle('balloon', 'balloonballon')) // response 1 console.log(countNeedle('balloon', 'balloonballoonballoon')) // 3 console.log(count

我有一个练习,我需要数一数大海捞针的眼压,而不管大海捞针的大小

console.log(countNeedle('balloon', 'balloonballoon')) // response 2
console.log(countNeedle('balloon', 'balloonballon')) // response 1
console.log(countNeedle('balloon', 'balloonballoonballoon')) // 3
console.log(countNeedle('balloon', 'oolqoybaelalbnotrlnw')) // 2
console.log(countNeedle('balloon', 'asdfghjkl')) // 0
我开始为每个字母及其在草堆中的出现量创建一个字典,然后我过滤以发现针中的所有字母是否都包含在草堆中,如果没有,则返回0。。但是我不知道如何继续下去。。我想在迭代过程中反复使用指针并收回字母,但我不知道这是否是最好的方法

这里是我做的函数初始化的一个例子

const countNeedle = (needle, haystack) => {
  const haystackArray = [...haystack]
  const letterDictionary = haystackArray.reduce((acc, curr) => {
    acc[curr] = acc[curr] ? acc[curr] + 1 : 1
    return acc
  }, {})
  if ([...needle].every((value) => Object.keys(letterDictionary).includes(value))) {
    ...
  } else {
    return 0
  }
}