gpt4 book ai didi

JavaScript - 数字是否有序 Kata

转载 作者:行者123 更新时间:2023-12-03 16:31:58 26 4
gpt4 key购买 nike

我是最近的编码训练营学生,我周五毕业。虽然我正在寻找我的第一个职业机会,但我一直在回顾我们为培养解决问题的技能而获得的一些早期 kata,我不得不说我被其中的一些难住了。我已经为这些问题编写了测试,并使用 TDD 来尝试解决它们。语言是Javascript。

任何人都可以用这个为我指出正确的方向。我已经写了 4 次测试,它通过了 4 次中的 3 次,我无法让它通过第 3 次测试,我不知道还能尝试什么。

卡塔说明:
areOrdered 函数应该将一个数字数组作为输入。
如果所有数字都按升序排列,它应该返回 true,否则返回 false。
空数组应返回 false。

我的测试:

const areOrdered = require("../katas/are-ordered");
const { expect } = require("chai");

describe.only("areOrdered", () => {
it("returns a boolean", () => {
const nums = [];
const actualResults = areOrdered(nums);
const expectedResults = false;
expect(actualResults).to.equal(expectedResults);
});

it("returns false if passed an empty array", () => {
const nums = [];
const actualResults = areOrdered(nums);
const expectedResults = false;
expect(actualResults).to.equal(expectedResults);
});

it("returns true if the numbers array is in ascending order", () => {
const nums = [1, 2, 3];
const actualResults = areOrdered(nums);
const expectedResults = true;
expect(actualResults).to.equal(expectedResults);
});
it("returns false if the numbers array is not in ascending order", () => {
const nums = [3, 1, 0, 2];
const actualResults = areOrdered(nums);
const expectedResults = false;
expect(actualResults).to.equal(expectedResults);
});
});

我的解决方案:
function areOrdered(nums) {
if (nums.length === 0) {
return false;
}

for (let i = 0; i < nums.length; i++) {
if (!nums[i] < nums[i] + 1) {
return false;
} else if (nums[i] < nums[i] + 1) {
return true;
}
}
}

结果:

有序
✓ returns a boolean
✓ returns false if passed an empty array
1) returns true if the numbers array is in ascending order
✓ returns false if the numbers array is not in ascending order

3 次通过(11 毫秒)
1 次失败

1) 已订购
如果 numbers 数组按升序排列,则返回 true:
  AssertionError: expected false to equal true
+ expected - actual

-false
+true

最佳答案

您可以从第二个项目迭代并检查之前的项目和实际项目。

返回 false如果值不按顺序排列。

最后返回 true .

function areOrdered(nums) {
if (nums.length === 0) return false;

for (let i = 1; i < nums.length; i++) {
if (nums[i - 1] >= nums[i]) return false;
}
return true;
}

console.log(areOrdered([])); // false
console.log(areOrdered([1, 2, 3])); // true
console.log(areOrdered([3, 1, 0, 2])); // false

关于JavaScript - 数字是否有序 Kata,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60213832/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com