[英]How to create a reusable array.reduce function
Im working on solving an Anagram problem wanted to get clever with Javascript methods我正在解决一个字谜问题,想用 Javascript 方法变得聪明
here is my code这是我的代码
const stringA = ["hello"]
const stringB = ["olhle"]
let cleanStrA = stringA.replace(/[^\w]/g, '').toLowerCase().split('')
let cleanStrB = stringB.replace(/[^\w]/g, '').toLowerCase().split('')
function charMap (str) {
str.reduce((acc, cur) => {
acc[cur] = acc[cur] + 1 || 1
return acc
},{})
return str
}
let buildCharMapA = charMap(cleanStrA)
let buildCharMapB = charMap(cleanStrB)
console.log(buildCharMapA)
result = ("hello")
When i console log this it returns the original array, but when i remove the function encompassing the reduce method it create the intended object当我在控制台记录它时,它返回原始数组,但是当我删除包含 reduce 方法的 function 时,它会创建预期的 object
let reduceFn = cleanStrA.reduce((acc, cur) => {
acc[cur] = acc[cur] + 1 || 1
return acc
},{})
console.log(reduceFn)
result = {h:1, e:1, etc.}
What gives?是什么赋予了?
As the comments pointed out i mistakenly returned str instead of the entire reduce function正如评论指出的那样,我错误地返回了 str 而不是整个 reduce function
function charMap (str) {
return str.reduce((acc, cur) => {
acc[cur] = acc[cur] + 1 || 1
return acc
},{})
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.