[ Web Proxy ]
URL:
Viewing: https://ko.javascript.info/array [Back]  [Original]

:
Light themeDark theme
DanskEnglishEspaolFranaisIndonesiaItalianoTrkeOzbek
2021 12 15

, .

, , . , HTML .

. .

.

.

let arr = new Array();
let arr = [];

, .

let fruits = ["", "", ""];

0 () . .

.

let fruits = ["", "", ""];

alert( fruits[0] ); // 
alert( fruits[1] ); // 
alert( fruits[2] ); // 

.

fruits[2] = ''; //  ["", "", ""] 

.

fruits[3] = ''; //  ["", "", "", ""] 

length .

let fruits = ["", "", ""];

alert( fruits.length ); // 3

alert .

let fruits = ["", "", ""];

alert( fruits ); // ,,

.

:

//      .
let arr = [ '', { name: '' }, true, function() { alert('.'); } ];

//  1 () name  .
alert( arr[1].name ); // 

//  3 () .
arr[3](); // .
trailing

.

let fruits = [
  "",
  "",
  "",
];

trailing( ) .

poppush shiftunshift

(queue) , . .

  • push .
  • shift . .
[]

push pop .

.

(stack) .

.

  • push .
  • pop .

' .

. ' .

[]

. (Last-In-First-Out, LIFO) . (First-In-First-Out, FIFO) .

. .

(deque, Double Ended Queue) .

.

pop

, .

let fruits = ["", "", ""];

alert( fruits.pop() ); //  ""     .

alert( fruits ); // ,
push

.

let fruits = ["", ""];

fruits.push("");

alert( fruits ); // ,,

fruits.push(...) fruits[fruits.length] = ... .

.

shift

, .

let fruits = ["", "", ""];

alert( fruits.shift() ); //  ""     .

alert( fruits ); // ,
unshift

.

let fruits = ["", ""];

fruits.unshift('');

alert( fruits ); // ,,

push unshift .

let fruits = [""];

fruits.push("", "");
fruits.unshift("", "");

// ["", "", "", "", ""]
alert( fruits );

. arr arr[0] . .

. length . .

, .

. .

let fruits = [""]

let arr = fruits; //  (    )

alert( arr === fruits ); // true

arr.push(""); //    .

alert( fruits ); // , -    .

. . .

' .

.

let fruits = []; //    .

fruits[99999] = 5; //        .

fruits.age = 25; //     .

.

.

.

  • arr.test = 5
  • arr[0] arr[1000]
  • arr[1000], arr[999]

. . , . {} .

push pop shift unshift .

[]

.

fruits.shift(); //     .

shift 0 . .

shift 3 .

  1. 0 .
  2. . 1 0, 2 1 .
  3. length .
[]

.

unshift . , .

push pop ? . pop length .

pop .

fruits.pop(); //     .
[]

pop . .

push .

for . .

let arr = ["", "", ""];

for (let i = 0; i < arr.length; i++) {
  alert( arr[i] );
}

for..of .

let fruits = ["", "", ""];

//      .
for (let fruit of fruits) {
  alert( fruit );
}

for..of . for..of .

for..in .

let arr = ["", "", ""];

for (let key in arr) {
  alert( arr[key] ); // , , 
}

for..in for..in .

  1. for..in . .

    , (array-like) . length . . for..in . .

  2. for..in 10~100 . for..in , for..in .

for..in .

length

length . length 1 .

, length .

let fruits = [];
fruits[123] = "";

alert( fruits.length ); // 124

.

length .

length . . . .

let arr = [1, 2, 3, 4, 5];

arr.length = 2; //  2  .
alert( arr ); // [1, 2]

arr.length = 5; //    .
alert( arr[3] ); // undefined:     .

arr.length = 0; .

new Array()

new Array() .

let arr = new Array("", "", "");

[] new Array() . new Array() .

new Array , .

new Array() .

let arr = new Array(2); //    [2] ?

alert( arr[0] ); // undefined .     .

alert( arr.length ); //  2.

new Array(number) undefined .

new Array .

. (multidimensional array) . .

let matrix = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
];

alert( matrix[1][1] ); // 5,   

toString

toString .

:

let arr = [1, 2, 3];

alert( arr ); // 1,2,3
alert( String(arr) === '1,2,3' ); // true

.

alert( [] + 1 ); // "1"
alert( [1] + 1 ); // "11"
alert( [1,2] + 1 ); // "1,21"

Symbol.toPrimitive valueOf . [] , [1] "1", [1,2] "1,2" .

"+" . .

alert( "" + 1 ); // "1"
alert( "1" + 1 ); // "11"
alert( "1,2" + 1 ); // "1,21"

, .

  • :

    //  (   )
    let arr = [item1, item2...];
    
    // new Array (  )
    let arr = new Array(item1, item2...);

    new Array(number) number , .

  • length . 1 . length .

  • length .

.

  • push(...items) items .
  • pop() , .
  • shift() , .
  • unshift(...items) items .

.

  • for (let i=0; i<arr.length; i++) .
  • for (let item of arr) .
  • for (let i in arr) .

, , .

: 3

?

let fruits = ["", "", ""];

//  '' , push     .
let shoppingCart = fruits;
shoppingCart.push("");

// fruits    ?
alert( fruits.length ); // ?

4.

let fruits = ["", "", ""];

let shoppingCart = fruits;

shoppingCart.push("");

alert( fruits.length ); // 4

shoppingCart fruits .

: 5

.

  1. Jazz, "Blues" styles .
  2. "Rock-n-Roll" .
  3. "Classics" . .
  4. .
  5. "Rap" "Reggae" .

.

Jazz, Blues
Jazz, Blues, Rock-n-Roll
Jazz, Classics, Rock-n-Roll
Classics, Rock-n-Roll
Rap, Reggae, Classics, Rock-n-Roll
let styles = ["Jazz", "Blues"];
styles.push("Rock-n-Roll");
styles[Math.floor((styles.length - 1) / 2)] = "Classics";
alert( styles.shift() );
styles.unshift("Rap", "Reggae");
: 5

? ?

let arr = ["a", "b"];

arr.push(function() {
  alert( this );
})

arr[2](); // ?

arr[2]() obj arr, method 2 obj[method]() .

, arr[2] . arr[2] arr this , .

let arr = ["a", "b"];

arr.push(function() {
  alert( this );
})

arr[2](); // a,b,function(){...}

2 3 .

: 4

sumInput() .

  • prompt , .
  • , Cancel .
  • .

: 0 , 0 .

. +value , ( ) 0( ) , prompt value .

function sumInput() {

  let numbers = [];

  while (true) {

    let value = prompt("  .", 0);

    //     
    if (value === "" || value === null || !isFinite(value)) break;

    numbers.push(+value);
  }

  let sum = 0;
  for (let number of numbers) {
    sum += number;
  }
  return sum;
}

alert( sumInput() );
: 2

arr = [1, -2, 3, 4, -9, 6] .

arr .

getMaxSubSum(arr) .

:

getMaxSubSum([-1, 2, 3, -9]) == 5 (   )
getMaxSubSum([2, -1, 2, 3, -9]) == 6
getMaxSubSum([-1, 2, 3, -9, 11]) == 11
getMaxSubSum([-2, -1, 1, 2]) == 3
getMaxSubSum([100, -9, 2, -3, 5]) == 100
getMaxSubSum([1, 2, 3]) == 6 ( )

( ). 0 .

getMaxSubSum([-1, -2, -3]) = 0;

. O(n2) O(n) .

.

.

.

[-1, 2, 3, -9, 11] .

// -1 
-1
-1 + 2
-1 + 2 + 3
-1 + 2 + 3 + (-9)
-1 + 2 + 3 + (-9) + 11

// 2 
2
2 + 3
2 + 3 + (-9)
2 + 3 + (-9) + 11

// 3 
3
3 + (-9)
3 + (-9) + 11

// -9 
-9
-9 + 11

// 11 
11

. , .

function getMaxSubSum(arr) {
  let maxSum = 0; //     0 .

  for (let i = 0; i < arr.length; i++) {
    let sumFixedStart = 0;
    for (let j = i; j < arr.length; j++) {
      sumFixedStart += arr[j];
      maxSum = Math.max(maxSum, sumFixedStart);
    }
  }

  return maxSum;
}

alert( getMaxSubSum([-1, 2, 3, -9]) ); // 5
alert( getMaxSubSum([-1, 2, 3, -9, 11]) ); // 11
alert( getMaxSubSum([-2, -1, 1, 2]) ); // 3
alert( getMaxSubSum([1, 2, 3]) ); // 6
alert( getMaxSubSum([100, -9, 2, -3, 5]) ); // 100

O(n2) . 2 4 .

(1000, 10000 ) .

s . s s 0 . s .

.

function getMaxSubSum(arr) {
  let maxSum = 0;
  let partialSum = 0;

  for (let item of arr) { //   
    partialSum += item; // partialSum .
    maxSum = Math.max(maxSum, partialSum); //   .
    if (partialSum < 0) partialSum = 0; //   0 .
  }

  return maxSum;
}

alert( getMaxSubSum([-1, 2, 3, -9]) ); // 5
alert( getMaxSubSum([-1, 2, 3, -9, 11]) ); // 11
alert( getMaxSubSum([-2, -1, 1, 2]) ); // 3
alert( getMaxSubSum([100, -9, 2, -3, 5]) ); // 100
alert( getMaxSubSum([1, 2, 3]) ); // 6
alert( getMaxSubSum([-1, -2, -3]) ); // 0

O(n).

. . .

.

.

Web Proxy Viewer  |  New URL  |  Original Page