Hello, checkiomates🐱👤!
This week, we explore the State of JS 2025 survey results, uncover the fun of making PS2 games with JavaScript, and clarify confusion around data formats in the deep dive 'JSON isn't JSON'. Our mission challenges your logic with a doubles tennis problem, finding the optimal pairing of four players to minimize the difference in team skill levels.
💡TIP
We allow users to assign hotkeys to "Run Code", "Check Solution" and stop code. You may see current combinations on buttons and change them in editor menu. If you want to discover all CheckiO features, visit our tutorial. It's a longread, but it's worth it!
🏁MISSION
Tennis Doubles by freeman_lex -
Four friends have agreed to play doubles tennis. Each of the friends has a level of play, which is represented by a positive integer: the higher the number, the better the player's level. The four friends want to form pairs to start the game. To make the game more interesting, they want the levels of the two teams to be as close as possible. The level of a team is the sum of the levels of the players on the team. Although they are very good tennis players, the four friends are not very good at some other things, such as logic or mathematics. Can you help them and find the smallest possible difference between the levels of the teams that can be formed?
assert.strictEqual(levelDif([1, 2, 3, 4]), 0); assert.strictEqual(levelDif([5, 5, 5, 5]), 0); assert.strictEqual(levelDif([1, 9, 3, 2]), 5);
📖ARTICLES
The State of JavaScript 2025 Survey -
Each year, Devographics runs an epic survey of as many JavaScript community members as it can and turns the results into an interesting report on the state of the ecosystem. If you have the time, fill it in, especially as they format it in a way where you can actually learn about stuff as you go.
You can take JS to Sony’s Playstation 2 using a system built upon QuickJS.
JSON is not JSON Across Languages -
If you use JSON to communicate between systems built in different languages, beware. Different libraries with varying opinions can cause “some of the most soul-crushing debugging experiences in software development.”
👩💻CODE SHOT
What do you think the following code does?
var checkio = d => d.map((c, i) => Math.max(...d.slice(i+1), -1))
🙌 Thanks for your attention! Hope to meet you at CheckiO, as well as at our Instagram and Twitter! We are really interested in your thoughts! Please, leave a comment below! ⤵