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이 나옵니다