2.0 KiB
2.0 KiB
title, id, challengeType, forumTopicId, localeTitle
title | id | challengeType | forumTopicId | localeTitle |
---|---|---|---|---|
Vector cross product | 594810f028c0303b75339ad2 | 5 | 302342 | Векторный перекрестный продукт |
Description
Задача:
Write a function that takes two vectors (arrays) as input and computes their cross product.
Ваша функция должна возвращать значение null
на недопустимые входы (т. Е. Векторы разной длины).
Instructions
null
on invalid inputs such as vectors of different lengths.
Tests
tests:
- text: dotProduct must be a function
testString: assert.equal(typeof crossProduct, 'function');
- text: dotProduct() must return null
testString: assert.equal(crossProduct(), null);
- text: crossProduct([1, 2, 3], [4, 5, 6]) must return [-3, 6, -3].
testString: assert.deepEqual(res12, exp12);
Challenge Seed
function crossProduct(a, b) {
// Good luck!
}
After Tests
const tv1 = [1, 2, 3];
const tv2 = [4, 5, 6];
const res12 = crossProduct(tv1, tv2);
const exp12 = [-3, 6, -3];
Solution
function crossProduct(a, b) {
if (!a || !b) {
return null;
}
// Check lengths
if (a.length !== 3 || b.length !== 3) {
return null;
}
return [
(a[1] * b[2]) - (a[2] * b[1]),
(a[2] * b[0]) - (a[0] * b[2]),
(a[0] * b[1]) - (a[1] * b[0])
];
}