//배열추가 Array.push() //배열의 끝에 요소추가
const a = ['b','c','d'];
const ab = a.push('p')
console.log(ab) //배열의 새로운 lenght
console.log(a) //배열 전체 반환
a.push('o', 't')
console.log(a)
// 두개의 배열합치기
//첫번째 배열에 두번째배열 합치기 // = c.push('o','p','t)
const c = ['b','c','d'];
const d = ['o','p','t'];
Array.prototype.push.apply(c,d)
console.log(c)
//배열추가 Array.unshift() //배열의 첫번째에 요소추가
const u = ['b','c','d'];
u.unshift('t','o')
console.log(u)
// u.unshift([l,w]); //오류
// console.log(u)
u.unshift([a]); //a배열을 맨앞에 추가
console.log(u)
u.unshift([0,2]); //[0,2]배열 맨앞에 추가
console.log(u)
배열추가삭제 Array.splice() //기존 요소 삭제or수정 새 요소 추가
const s = ['b','c','d'];
s.splice(1,0,'a') //index 1에, 0개의 요소 삭제, 'a'요소추가
console.log(s)
const b = ['b','c','d','u','p'];
b.splice(2,2,'m','n') //index 2에, 2개의 요소 삭제, m','n'요소추가
console.log(b)
//배열삭제 Array.pop() //배열의 맨끝값 제거
const poplist = ['a','b','c','d']
poplist.pop() //제거된 값 반환 //const a = poplist.pop()
console.log(poplist) //제거되고 난 후의 값 반환
//배열삭제 Array.shift() //배열의 맨앞값 제거
const shiftlist = ['a','b','c','d']
shiftlist.shift() //제거된 값 반환
console.log(shiftlist) //제거되고 난 후의 값 반환
//새배열 만들기 Array.split() //기준이되는 텍스트로 잘라서 새배열 반환
const num = "apple banana orange";
const arr = num.split();
console.log(arr)
console.log(arr.length)
const strr = num.split(" "); //(스페이스)문자열을 각 단어별로 잘라서 반환
console.log(strr) //전체 반환
console.log(strr[0]) //인덱스0번만 반환
const app = num.split(""); //문자열을 글자로 잘라서 반환
console.log(app) //전체 반환
console.log(app[5]) //인덱스5는 space여서 빈배열
const ppnum = "apple,banana,orange";
const pp = ppnum.split(","); //문자열을 text ','로 잘라서 반환
console.log(pp) //전체 반환
const li = ppnum.split(",",2);
//문자열을 text ','로 자르고 limit값인 2개의 배열만 반환
console.log(li) //전체 반환
console.log(li[2]) //반환된 배열의 index 2는 없기 때문에 undefined
//새배열 만들기 Array.concat() //기존배열에 얕은복사 후 뒤에 새요소 추가 -> 새배열 반환
const con =['a','t','u']
const cat = con.concat(['b','n'])
console.log(cat)
const aa = con.concat('b','n')
console.log(aa)
const bb = con.concat('b','n',['f','m'])
console.log(bb)
//새 문자열 만들기 Array.join()
//배열의 요소를 문자열로 바꾸고, 인자로 받은 text로 연결하여 하나의 문자열로 반환
const jointest = ["c", "b", "nn", "io"];
console.log(jointest.join())
console.log(jointest.join(''))
console.log(jointest.join('/'))
//새 문자열 만들기 Array.slice()
//배열의 인덱스 값을 이용해 배열의 요소 빼내기
const slicetest = ["aa","cd","rf","dd"];
const result = slicetest.slice(1) //인덱스는 1부터 끝까지 반환(2인자는 정해주지 않음)
console.log(result)
const result1 = slicetest.slice(1, 2)//인덱스는 1부터 시작 2이전까지의 데이터반환
console.log(result1)
const result2 = slicetest.slice(1, 3) //인덱스는 1부터 시작 3이전까지의 데이터반환
console.log(result2)
const result3 = slicetest.slice(-2)//-는 뒤에서 부터 시작//인덱스-2부터 그뒤로 끝까지
console.log(result3)
const result4 = slicetest.slice(2, -1) //두번째 인자의 앞 인덱스 요소까지
console.log(result4)
//요소 뽑아내기 indexOf, lastIndexOf//배열에서 인수로 전달된 요소를 검색하여 인덱스번호 반환
const test = ["a","c","v","d","g"]
const re = test.indexOf("v")
const re2 = test.lastIndexOf("d")
console.log(re);
console.log(re2);
반복메서드
map
forEach //for문대체 반복문
reduce
filter
var testArray = [1,2,3,4,5];
const array = testArray.filter((element,index,array)=>{
console.log(element)
console.log(index)
console.log(array)
})

slice(얕은복사)를 이용하여 새 변수(addedList)에 할당해 준다find메서드를 이용해 setCheckedList에 있는 값과 다시 새롭게 클릭된 값을 비교한다filter메서드를 이용해 해당 값을 제외한 나머지 값만 리턴해준다 else {
const addedList = checkedList.slice(); //slice = 얕은복사
addedList.push(checkbox);
setCheckedList(addedList);
// 스프레드 연산자로 바꿔보기
//setCheckedList([checkbox, ...checkedList]);
}
allMemberusers 만들기 (1차원으로 만들어줄 배열)allMember를 concat을 이용해 빈배열 users로 넣기const allMember = this.data.teamData.map((data) => {
if (data.teamMembers) {
return data.teamMembers?.map((user) => {
return user.user;
});
} else {
return [];
}
});
const users: Entity.User[] = [];
const newArr = users.concat(...allMember);
배열(Array)은 타입 객체로 프로퍼티(Array.prototype)를 상속받는다.
const city = ["서울","인천","부산","울산"];
#요소 한 개 추가
city.push("충주");
console.log(city); //["서울","인천","부산","울산","충주"]
#요소를 두 개 이상 추가
const city = ["서울","인천","부산","울산"];
city.push("충주","광주");
console.log(city); //["서울","인천","부산","울산","충주","광주"]
const city = ["서울","인천","부산","울산"];
city.pop();
console.log(city);//["엄마","아빠","할머니"]
const city = ["서울","인천","부산","울산"];
city.shift();
console.log(city);//["인천","부산","울산"]
const city = ["서울","인천","부산","울산"];
city.unshift();
console.log(city);//["제주","서울","인천","부산","울산"]
splice(수정을 시작할 위치 인덱스 값,삭제 할 요소의 개수,삽입 할 요소)배열 👉 배열const city = ["서울","인천","부산","울산"];
city.splice(1, 0, "제주");
// inserts at index 1
console.log(city );
// expected output: Array ["서울", "제주", "인천","부산","울산"]
city.splice(4, 1, "광주");
// replaces 1 element at index 4
console.log(city);
// expected output: Array ["서울", "제주", "인천","부산","광주"]
string.split(separator, limit)👉 문자열을 'separator'로 잘라서,'limit' 크기 이하의 배열에 잘라진 문자열을 저장하여 리턴한다.문자열 👉 배열//#파라미터를 입력하지 않은 경우
const str = "apple banana orange";
const arr = str.split();
document.writeln(arr); // apple banana orange
document.writeln(arr.length); // 1
//파라미터로 아무것도 전달하지 않으면 문자열 전체를 length 1인 배열에 담아서 리턴한다.
//#단어별로 잘라서 배열에 담기
const str = "apple banana orange";
const arr = str.split(" ");
document.writeln(arr.length); // 3
document.writeln(arr[0]); // apple
document.writeln(arr[1]); // banana
document.writeln(arr[2]); // orange
//separator로 " "(스페이스)를 지정하면, 문자열을 구분자로 잘라서 각각의 잘라진 조각들을 배열에 저장하여 리턴한다.
//#글자별로 잘라서 배열에 담기
const str = "a b c";
const arr = str.split("");
document.writeln(arr.length); // 5
document.writeln(arr[0]); // a
document.writeln(arr[1]); // ' '(space)
document.writeln(arr[2]); // b
document.writeln(arr[3]); // ' '(space)
document.writeln(arr[4]); // c
//separator로 ""(length가 0인 문자열)을 전달하면, 문자열을 각각의 문자별로 잘라서, 한 글자씩(공백 포함) 배열에 저장하여 리턴합니다.
//#특정 구분자로 잘라서 배열에 담기
const str = "apple,banana,orange";
const arr = str.split(",");
document.writeln(arr.length); // 3
document.writeln(arr[0]); // apple
document.writeln(arr[1]); // banana
document.writeln(arr[2]); // orange
//separator(여기서는 ',')를 지정하여, 문자열을 separator로 잘라서 만들어진 조각들을 배열에 담아서 리턴하였습니다.
//#limit값 지정하기
const str = "apple,banana,orange";
const arr = str.split(",", 2);
document.writeln(arr.length); // 2
document.writeln(arr[0]); // apple
document.writeln(arr[1]); // banana
document.writeln(arr[2]); // undefined
//두번째 파라미터인 limit 값을 지정하였다.
//위의 예제에서 문자열을 ','로 자르면 총 3개의 배열이 만들어지지만, limit 값을 2로 지정하였기 때문에 2개의 배열만 생성되었습니다.
배열 👉 문자열const ciry = ["서울", "인천", "부산", "울산"];
console.log(ciry.join());
// expected output: "서울,인천,부산,울산"
console.log(ciry.join(''));
// expected output: "서울인천부산울산"
console.log(ciry.join('-'));
// expected output: "서울-인천-부산-울산"
배열 👉 배열const city = ["서울","인천","부산","울산"];
const result = city.concat(["제주", "광주"]);
console.log(result);
// ["서울","인천","부산","울산","제주","광주"]
//값을 여러개 추가할때
const city = ["서울","인천","부산","울산"];
const result = city.concat(["제주", "광주"],["충주","대전"]);
console.log(result);
// ["서울","인천","부산","울산","제주","광주","충주","대전"]
slice(요소를 꺼낼 시작 위치 인덱스 값,요소를 꺼낼 마지막 위치 인덱스 바로 이전 값)
💡 두번째 인수값은 해당 값 위치 인덱스의 바로 이전 값이다배열 👉 배열
const city = ["서울","인천","부산","울산"]; //인덱스는 0부터 시작
const result = city.slice(1, 3);
console.log(result); //["인천","부산"]
🧐 Assignment 문제
그 후 sliceCityFromAddress 함수를 구현해 주세요.
sliceCityFromAddress함수는address를 인자로 받습니다.address는 주소를 나타내는 string 입니다.- 주어진 주소가 어느 도시 인지를 찾아 해당 주소에서 도시 부분만 삭제한 새로운 주소를 리턴해 주세요.
- 도시는 무조건 "시" 로 끝납니다. 예를 들어, "서울시".
- "도" 와 "시" 는 주소에 한번 밖에 포함되어 있지 않습니다.
- 예를 들어, 다음과 같은 주소가 주어졌다면;
"경기도 성남시 분당구 중앙공원로 53"다음과 같은 값이 리턴되어야 합니다:
"경기도 분당구 중앙공원로 53"✍️ 풀이
function sliceCityFromAddress(address) { let firstChar = address.indexOf("도"); let lastCity = address.indexOf("시"); console.log(firstChar) console.log(lastCity) if (firstChar == -1 ) { //객체속에 'firstChar'가 없을때에, return address.slice(lastCity+2, address.length); } else { return address.slice(0, firstChar+2) + address.slice(lastCity+2, address.length); } } sliceCityFromAddress("경기도 성남시 분당구 중앙공원로 53") //'경기도 분당구 중앙공원로 53'
중복되는 요소가 있는 경우, 첫번째 인덱스를 반환한다.해당하는 요소가 없는 경우, -1을 반환한다.indexOf는 인덱스가 작은 쪽부터 순서대로 검색한다.lastIndexOf는 인덱스가 큰 쪽부터 역순으로 검색한다.
const city = ["서울","인천","부산","제주","울산"];
const result = city.indexOf("인천");
const result2 = city.lastIndexOf("제주");
console.log(result); // 1
console.log(result2); // 3
///3개의 인자를 받음 (하나씩 쓰는 요소1, 인덱스번호, 사용중인 배열)
const arr = [2, 3, 4, 5, 6];
count.forEach(function (v, i, a) {
a[i] = v * v; //ex) a[i] = 3 * 3
});
//function (vaule(요소의 값), index(1부터 배열 갯수), array(0부터 배열 순서))
console.log(count); // [4,9,16,25,36]
=================================================================
data.forEach((team) => {
if (team.Userdetail.id === userDetailData.id) {
team.Userdetail.profileImage = userDetailData.profileImage;}
});
forEach기법은 for문 대신 사용하는 반복 메서드이다.return하는 것도 아무것도 없이 forEach함수를 탈출하고 싶을때 return을 사용한다.
배열을 순회하며 요소 값을 다른 값으로 맵핑하기 위한 함수이다.
👉 *(곱셈) 값 구하기
///3개의 인자를 받음 (하나씩 쓰는 요소1, 인덱스번호, 사용중인 배열)
const arr = [2, 3, 4, 5, 6];
const result = arr.map(function (x) {
return 2 * x;
});
console.log(arr);
👉 객체 배열요소의 특정 프로퍼티값을 꺼내서 배열로 만들기
const city = [
{ name: "서울", count: 30 },
{ name: "대구", count: 12 },
{ name: "부산", count: 16 },
{ name: "광주", count: 6 }
];
const names = city.map((city) => city.name);
const counts = city.map((city) => city.count);
console.log(names); // ["서울","대구","부산","광주"]
console.log(counts);// [30,12,16,6]
🧐 Assignment 문제
1. moreThan100 함수를 구현해 주세요.
- 숫자로 구성된 배열을 인자로 받습니다.
- 100 보다 크거나 같으면, true 를
- 100 보다 작으면 false 로 요소를 변경하여, 새로운 배열을 return 해주세요.
- 예를 들어,
nums(input)가 [100, 9, 30, 7] 이라면 return은 [true, false, false, false]✍️ 풀이
const moreThan100 = nums => { const numBer = nums.map( i => {if (i < 100) { return false; } return true; } ) return numBer; } moreThan100([100, 9, 30, 7]);2. formatDate 함수를 구현해 주세요.
- 날짜가 담긴 배열을 인자로 받습니다.
- 날짜의 data type은 string이며, 보내는 날짜 타입은 'YYYY-MM-DD' 입니다.
- 해당 날짜의 형식을 'YYYY년 MM월 DD일' 로 바꿔서, 새로운 배열을 return 해주세요.
- 예를 들어,
dates(input)가 ['2019-03-21', '2019-04-21', '2019-05-21'] 이라면 return은 ['2019년 03월 21일', '2019년 04월 21일', '2019년 05월 21일']✍️ 풀이
const formatDate = dates => { let str = dates.map(function(arr){ let dates = arr.split('-'); return dates[0] + "년 " + dates[1] + "월 " + dates[2] + "일"; } ) return str; } formatDate(['2019-03-21', '2019-04-21', '2019-05-21']);
👉 arr.reduce(callback[, initialValue])*reduce 메서드의 인수
- callback : 합성 곱을 하는 함수
- initial : callback이 처음 호출되었을 때의 첫 번째 인수prev의 값(생략가능)
*callback 함수는 다음과 같은 인수를 받는다.
- previousValue : 이전 요소를 처리한 함수의 반환값 또는 initaial 첫번째 요소의 값.
- currentValue : 현재 처리하는 배열 요소의 값
- currentIndex : 현재 처리하는 배열 요소의 인덱스
- array : 메서드를 적용 중인 배열의 참조
var sum = arr.reduce( (pre, value, ide, arr) => {
return pre + value;
});
consol.log(sum);```