简体   繁体   English

如何创建可重用数组。减少 function

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM