1일차 과제 해결

김태원·2023년 3월 23일
0

Dart

목록 보기
4/5

https://velog.io/@k_tw/1일차-과제

void main() {
var a = [1, 2, 3, 4, 5, 6];
var index = a.indexOf(4);
print(index);
}

답: 3

∴ indexOf(4)의 4의 숫자가 a가 몇번째 자리에 있는지 알려준다
indexOf는 일치하는 요소가 없으면 –1이 출력됨

====================================
void main() {
var list = [1, 2, 3, 4, 5];
var elementsToAdd = [6, 7, 8];
list.insertAll(2, elementsToAdd);
print(list);

답: [1, 2, 6, 7, 8, 3, 4, 5]

∴ insertAll()에서 2는 2의 위치 다음(2와3사이)에 elementsToAdd를 넣는다

====================================
void main() {
List list1 = [0, 1, 2, 3, 4, 5, true, false];
List list2 = [];

list2.add(list1.contains(list1[list1.length-1]));
list2.insertAll(0, ['a', 'b', 'c', 1, 2, 3]);
list2.indexOf(true)-list2.indexOf(false);
print(list2.indexOf(true)-list2.indexOf(false));

}

list2.add(list1.contains(list1[list1.length -1]))
// list1에 요소가 8개가 있기 때문에
list1.length는 8이고 거기에 -1을 하니
7이 되겠죠 그러면 list1[7] 번째에
false가 포함되어있는가?
근데 list1에 false가 포함되어 있으니
list1.contains(false)의 값은 true가 되겠네요
따라서 list2.add(true) 가 되는 것이다

list2.insertAll(0, ['a', 'b', 'c', 1, 2, 3]);
0번째 index에 ['a', 'b', 'c', 1, 2, 3]를 삽입하면 전에 계산하여 원래 있던 true가 맨 뒤로 빠진다
['a', 'b', 'c', 1, 2, 3, true] 이렇게 된다

list2.indexOf(true)-list2.indexOf(false);
indexOf는 ()안의 값이 몇 번째 배열에 있는지 찾아줍니다
그러므로 (ture)의 값이 맨 뒤에 있는것이므로
6번째가 된다, 그리고
(false)는 없으므로 –1이 출력된다
따라서 6 - (-1)을 출력하면 7이 나옵니다

profile
개발자 입니다

0개의 댓글