javascript - 使用 Javascript 验证第二个数组中的值是否对应于第一个数组的平方值的函数

标签 javascript arrays for-loop if-statement compare

我对 if-else 语句有疑问,而且 splice 似乎不起作用。

function same(arr1, arr2) {
    if (arr1.length !== arr2.length) {
        return false;
    }
    for (let i = 0; i < arr1.length; i++) {
        for (let j = 0; j < arr2.length; j++) {
            let correctIndex = arr1[i] * 2;
            if (correctIndex !== arr2[j]) {
                return false;
            }
        }
        console.log(arr2);
        arr2.splice(correctIndex, 1)
    }
    return true;
}

same([1, 2, 3, 2], [9, 1, 4, 4]);

最佳答案

试试这个:

const sortNumber = numArray => numArray.sort((a, b) => a - b);

const same = (_arr1, _arr2) => { 
    const arr2 = sortNumber(_arr2);
    return sortNumber(_arr1).every((res,i)=>arr2[i]===res**2);
}

console.log(same([1, 2, 3, 2], [9, 1, 4, 4]))

关于javascript - 使用 Javascript 验证第二个数组中的值是否对应于第一个数组的平方值的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57102589/

相关文章:

javascript - 绝对定位 block 反对文档中的任何元素

javascript - Jquery:单击复选框时隐藏 slider

javascript - 我的项目使用代理跨域,但是当我请求它的请求地址改变

javascript - 确定 JSON 数组中字符串的出现次数

javascript - 如何使用 JavaScript 数组和 getDate 显示今天的日期?

arrays - 如何制作类对象的快速数组的副本

javascript - for(;;)循环解释

javascript - 如何在使用 fancybox 时从这个 span 元素创建一个 javascript 变量?

c++ - 为什么编译器需要尾随返回类型?

python - 使用for循环的pandas dataframe concat不起作用