首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检查字符串中所有字符是否相等的函数javascript -家庭作业警告

检查字符串中所有字符是否相等的函数javascript -家庭作业警告
EN

Stack Overflow用户
提问于 2016-12-17 05:44:58
回答 6查看 4.2K关注 0票数 4

我找到了这个家庭作业问题的解决方案,但我觉得这不是解决这个问题的最有效的方法。对我应该探索的其他解决方案感兴趣。

问:编写一个名为allEqual的函数,如果字符串中的每个字符都相同,则该函数返回true

示例:

如果你通过"aaa“它应该返回true如果你通过"aba”它应该返回false */

我的代码

代码语言:javascript
运行
复制
var stringAE = "aba";

function allEqual(string) {
    var stringAENew = "";
    for (var i = 0; i < string.length; i++) {
        if (string[0] === string[i]) {
            stringAENew += string[i];
            console.log(stringAENew)
        }

    }
    return stringAENew === string;
}


allEqual(stringAE) 
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2016-12-17 06:00:38

使用.every()的简单解决方案。

代码语言:javascript
运行
复制
function allEqual(input) {
    return input.split('').every(char => char === input[0]);
}

console.log(allEqual('aba')); // false
console.log(allEqual('aaa')); // true
console.log(allEqual('')); // true

票数 8
EN

Stack Overflow用户

发布于 2016-12-17 05:50:51

也可以使用正则表达式完成

代码语言:javascript
运行
复制
function allEqual(str) {
   return /^(.)\1*$/.test(str);
}

虽然可能不是那么有效。

票数 1
EN

Stack Overflow用户

发布于 2016-12-17 06:15:06

此ES6解决方案还适用于在第一个平面中具有Unicode代码点的字符串(https://en.wikipedia.org/wiki/Plane_(Unicode%29),即代码超出16位范围:

代码语言:javascript
运行
复制
function allEqual(string) {
    return [...string].every( (x, _, a) => x === a[0]);
}

console.log(allEqual('aaaa')); // true
console.log(allEqual('aaaba')); // false
// Next one fails in solutions that don't support multi-plane unicode:
console.log(allEqual('???')); // true
console.log(allEqual('')); // true

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41192854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档