Giter Site home page Giter Site logo

core-js-conditions-n-loops-tasks's Introduction

Core JS conditions and loops task

⚠️ Please note that you mustn't open PRs that contains the answers to this repo!

However, PRs with the fixes or proposals are welcomed!

Task

The task is to implement functions on different Core JS topics. This module requires solving tasks related to loops and conditions.

Active usage of documentation is strongly recommended!

Prepare and test

  1. Install Node.js

  2. Fork this repository: https://github.com/rolling-scopes-school/core-js-conditions-n-loops-tasks

  3. Clone your newly created repo: https://github.com/<%your_github_username%>/core-js-conditions-n-loops-tasks/

  4. Go to folder core-js-conditions-n-loops-tasks

  5. To install all dependencies use npm install

  6. Each task is usually a regular function:

    /**
     * Returns the maximum of three numbers.
     * In this task, the use of methods of the Array class is not allowed.
     *
     * @param {number} a
     * @param {number} b
     * @param {number} c
     * @return {number}
     *
     * @example:
     *  1, 2, 3       => 3
     *  -5, 0, 5      => 5
     *  -0.1, 0, 0.2  => 0.2
     */
    function getMaxNumber(/* a, b, c */) {
      throw new Error('Not implemented');
    }

    Read the task description in the comment above the function. Try to understand the idea. You can see the tests prepared if you don't understand it.

  7. Write your code in src/conditions-n-loops-tasks.js.

    Uncomment the incoming parameters:

    function getMaxNumber(/* a, b, c */)

    Remove the throwing error line from function body:

    throw new Error('Not implemented');

    Implement the function by any way and verify your solution by running tests until the failed test become passed (green).

  8. Save the solution and run npm test in command line. If everything is OK you can try to resolve the next task.

Submit to rs app

  1. Commit and push your solutions to your fork
  2. Open rs app and login
  3. Go to submit task page
  4. Select your task (Core JS Conditions-n-loops)
  5. Press submit button and enjoy

Notes

  • We recommend you to use nodejs of version 16 or lower. If you using any of features that does not supported by node v16, score won't be submitted.
  • Installing nodejs v16 is optional, you can run jobs using your version and not use methods that are not in nodejs v16.
  • Please be sure that each of your test in limit of 30sec.
  • You will get 0 (zero) if you have any eslint's errors or warnings.

FAQ

Question: I use Windows machine and have received a lot of errors like "Expected linebreaks to be 'LF' but found 'CRLF'". How to handle it?
Answer:

  • First, you need to install Gitbash properly: you need to choose option "Checkout as-is, commit as-is" in section "Configuring the line ending conversions". It'll let you download repos with line endings set "as-is" as well as commit. In other words, not to change them at all, because by default it converts them.

  • Second, install editorconfig plugin to your editor. For VS Code you can find it here: https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig

    I'll let you apply some rules when you saving your files in the repo. This plugin will use config-file .editorconfig that you can see in the root folder. It lets you save the file with needed line endings, trim whitespaces, etc.

  • Finally, you need to apply linter's autofix feature in order to fix all linebreaks that was already changed to "CLRF":

$ npm run lint:fix

Question: Execution of tests "hangs" on one of them and does not display the result. What to do?
Answer: Check your solution for an infinite loop, fix it, and rerun the test.

Question: The solution in the local repository succeeds and all tests are "green", but in the application some tests don't count. What to do?
Answer: Update your repository fork, update the local repository from the fork, run tests and fix your solution. After fixing, resubmit your solution for testing.


The task based on https://github.com/mikhama/core-js-101/blob/master/src/07-conditions-n-loops-tasks.js.

core-js-conditions-n-loops-tasks's People

Contributors

eternalrival avatar mikaleinik avatar sergiozeppo avatar skayer81 avatar valerydluski avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

core-js-conditions-n-loops-tasks's Issues

Presence of Obfuscated and Minified JavaScript Files in Test Suite Poses Security Risk And Loss of User Data

Dear RSSchool,

I hope this message finds you well. I am writing to bring your attention to a critical issue identified in the test suite of the core-js-conditions-n-loops-tasks GitHub repository. The concern revolves around the presence of obfuscated and minified JavaScript files within the test suite, for which no corresponding source code is available.

Issue Description:
The current state of the test suite includes JavaScript files that have been obfuscated and minified, making it impossible to review and rebuild the code to confirm its content. This lack of transparency raises serious security concerns, as it introduces the risk of potential malicious code that could compromise the integrity of the repository and, consequently, the security of user data.

Potential Implications:
Security Risk: The obfuscated code may contain malicious elements that could compromise the security of the entire repository and, consequently, user data.

Inability to Verify Code: Without access to the source code, it is challenging to verify the legitimacy and security of the obfuscated and minified files.

Proposed Actions:
Review and Refactor Code: It is recommended to review and refactor the obfuscated and minified JavaScript files to ensure transparency and mitigate the risk of security threats.

Provide Source Code: If possible, please provide the corresponding source code for the obfuscated files, allowing for a thorough review and analysis.

Implement Code Analysis: Consider implementing code analysis tools to identify and address potential security vulnerabilities in the repository.

Timeline:
Given the severity of the potential security risk, it is recommended to address this issue promptly. A timeline for resolution would be greatly appreciated to ensure the continued security and integrity of the repository.

Your prompt attention to this matter is crucial, and I believe that addressing this issue swiftly will contribute to the overall security of the project, and trust of its users.

Thank you for your time and understanding.

Duplicate code test/conditions-n-loops-tests.js

it.optional(
'canQueenCaptureKing should return true if a queen can capture a king',
() => {
assert.equal(
tasks.canQueenCaptureKing({ x: 1, y: 1 }, { x: 5, y: 5 }),
true
);
assert.equal(
tasks.canQueenCaptureKing({ x: 2, y: 1 }, { x: 2, y: 8 }),
true
);
assert.equal(
tasks.canQueenCaptureKing({ x: 1, y: 1 }, { x: 2, y: 8 }),
false
);
assert.equal(
tasks.canQueenCaptureKing({ x: 1, y: 1 }, { x: 2, y: 8 }),!!!!!!!!!

Change letter in src/conditions-n-loops-tasks.js

/**

  • Finds the first occurrence of a letter in a string.
  • In this task, the use of methods of the String and Array classes is not allowed.
  • @param {string} str - The string to search.
  • @param {string} letter - The letter to find.
  • @return {number} The index of the first occurrence of the letter, or -1 if not found.
  • @example:
  • 'qwerty', 'q' => 0
  • 'qwerty', 'е' => 4
  • 'qwerty', 'Q' => -1
  • 'qwerty', 'p' => -1
    */

change

/**

  • Finds the first occurrence of a letter in a string.
  • In this task, the use of methods of the String and Array classes is not allowed.
  • @param {string} str - The string to search.
  • @param {string} letter - The letter to find.
  • @return {number} The index of the first occurrence of the letter, or -1 if not found.
  • @example:
  • 'qwerty', 'q' => 0
  • 'qwerty', 't' => 4
  • 'qwerty', 'Q' => -1
  • 'qwerty', 'p' => -1
    */

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.