function solution(n) {
for (let x = 2; x < n; x++) {
if (n % x === 1) {
return x;
}
}
}
for 루프를 사용하여 x를 2부터 n-1까지 증가(자연수는 1부터 시작하므로 2부터 시작)
각 x에 대해 n을 x로 나누었을 때의 나머지가 1인지 확인.
조건을 만족하는 x를 찾으면 즉시 반환.
문제에서 답이 항상 존재한다고 했으므로, 루프가 끝날 때까지 반환하지 않는 경우는 없다.
function solution(x, n) {
var answer = [];
for(let i = 0; i < n; i++){
answer.push(x*(i+1));
}
return answer;
}
x씩 증가하니까 x의 배수
배열이니까 push로 넣어줘야한다.
자바스크립트 Array 내장함수
forEach
const arr = [1, 2, 3, 4, 5];
arr.forEach(function (value) {
console.log(value);
});
Array 인스턴스의 forEach() 메서드는 각 배열 요소에 대해 제공된 함수를 한 번씩 실행한다.
[1,2,3,4,5]에서 1~5까지 전부다 실행!
indexOf
const arr = [1, 2, 3, 4, 5];
const foundIndex = arr.indexOf(3);
console.log(foundIndex); // 2
indexOf() 배열위치의 값을 불러오기
includes
const arr = [1, 2, 3, 4, 5];
let isIncludes = arr.includes(3);
console.log(isIncludes); // true
isIncludes = arr.includes(6);
console.log(isIncludes); // false
인스턴스의 includes() 메서드는 배열의 항목에 특정 값이 포함되어 있는지를 판단하여
true 또는 false를 반환한다.
find
// 숫자만 있는 배열의 경우
const arr = [1, 2, 3, 4, 5];
const found = arr.find(function (value) {
return value === 3;
});
console.log(found); // 3
// 오브젝트 배열의 경우
const objArray = [
{ name: 'apple', price: 100 },
{ name: 'banana', price: 200 },
{ name: 'grape', price: 300 },
]
const found = objArray.find(function (item) {
return item.name === 'banana';
});
console.log(found); // { name: 'banana', price: 200 }
find() 메서드는 제공된 배열에서 제공된 테스트 함수를 만족하는 첫 번째 요소를 반환한다.
테스트 함수를 만족하는 값이 없으면 undefind가 반환된다.
findIndex
// 숫자만 있는 배열의 경우
const arr = [1, 2, 3, 4, 5];
const foundIndex = arr.findIndex(function (value) {
return value === 3;
});
console.log(foundIndex); // 2
// 오브젝트 배열의 경우
const objArray = [
{ name: 'apple', price: 100 },
{ name: 'banana', price: 200 },
{ name: 'grape', price: 300 },
]
const foundIndex = objArray.findIndex(function (item) {
return item.name === 'banana';
});
console.log(foundIndex); // 1
findIndex() 메서드는 주어진 판별 함수를 만족하는 배열의 첫 번째 요소에 대한 인덱스를 반환한다.
만족하는 요소가 없으면 -1을 반환한다.