JAvascript雑記

1169 ワード

  • 配列雑記
  • 1)配列の判断はArrayを用いる.isArray()
    var number = 1;
    var arrays = [1, 2, 'number', null];
    
    Array.isArray(number) // false
    Array.isArray(arrays)    // true
    
    2)一次元配列の深いコピー
    // for  
    function copy(arr1, arr2) {
        for (var i  = 0; i < arr1.length; i++) {
            arr2[i] = arr1[i]
         }
    }
    
    // slice
    var arr1 = [1, 2, 3, 4];
    var arr2 = arr1.slice(0);  //        
    
    // concat
    var arr1 = [1, 2, 3, 4];
    var arr2 = arr1.concat();
    
    //      ...
    var arr1 = [1, 2, 3, 4];
    var [ ...arr2 ]  = arr1;
    
    
    3)多次元配列の深いコピー
    function deepCopy(array) {
        var copy = []
        for (var i = 0; i < array.length; i++) {
            if (array[i]  instanceof Array) {
                copy[i] = deepCopy(array[i])
             } else {
                copy = array[i]
             }
         }
         return copy;
    }
    
    4)配列の重量除去
    function distinct(array) {
        return [...new Set(array)]
    }
    
    var arr = [1, 1, 2, 3, 4, 4, 4];
    distinct(arr) // [1, 2, 3, 4]
    
    
  • オブジェクト雑記
  • 1)オブジェクトの深いコピー
    //      ...
    var obj1 = {
        name: 'Tom',
        age: 10,
        gender: ' '
    }
    var { ...obj2 } = obj1;