首页 > 解决方案 > 我正在尝试编写一个函数 isUniform()

问题描述

该函数应该接受一个数组,并将数组中的第一项与其他项进行比较。最终,如果数组中的所有项目都相同,它应该在控制台上打印“True”,否则打印“False”。我的函数执行以下操作:

function isUniform(list) {
    var firstItem = list[0];
    for (var i = 0; i <=list.length; i++){
        i++
        if(firstItem === list[i]){
            console.log("True");
        }else {
            console.log("False");
        };
    };
}


input:
isUniform(['a','a','a'])
**********************
output:
VM512:6 True
VM512:8 False 

你能给我一些关于我应该改变什么的见解吗?

标签: javascriptarraysfunctionfor-loop

解决方案


您尝试实现的正确算法是:

function isUniform (list) {
    var firstItem = list[0];
    for (var i = 0; i < list.length; i++){
        if (firstItem === list[i]) {
            console.log("True");
        } else {
            console.log("False");
        };
    };
}

isUniform(['a','a','a'])

你不需要i在你的 for 循环中增加你的,循环已经这样做了。而且您需要迭代直到i < list.length,而不是i <= list.length,这就是为什么false最后得到日志的原因,您不在数组中。所以条件是firstItem === undefined

https://jsfiddle.net/9L20engu/


推荐阅读