JavaScript常用方法

224 阅读1分钟

日期格式化

function formatTime(time) {
    var date = new Date(time);
    var year = date.getFullYear();
    let format = time => time > 9 ? time : '0' + time;
    let month = format(date.getMonth() + 1);
    let day = format(date.getDate())
    let hours = format(date.getHours());
    let min = format(date.getMinutes());
    return `${year}-${month}-${day} ${hours}:${min}`;
}

快速生成数组[0,1,2,3......,1000]

var i = 0;
Array.from({ length: 1000 }, _ => i++);

对象合并

//简单浅度合并
// es6解构
let obj1 = {a: 1};
let obj2 = {b: 2};
let obj3 = {...obj1, ...obj2};

// Object内置方法
obj3 = Object.assign(obj1, obj2); // obj2 回覆盖obj1,只进行一层

// 深度合并
function deepMerge(obj1, obj2) {
  var key;
  for (key in obj2) {
    obj1[key] =
      obj1[key] && obj1[key].toString() === "[object Object]"
        ? deepMerge(obj1[key], obj2[key])
        : (obj1[key] = obj2[key]);
  }
  return obj1;
}

数组摊平

const arr = [
    11,
    [21,22,[31,32,33,[41,42,43]]],
    12,
    13
]
const call = (res, item) => {
    if (Array.isArray(item)) {
        res.push(...item.reduce(call, []))
    } else {
        res.push(item)
    }
    return res
}
console.log(arr.reduce(call, []));
// 输出[11, 21, 22, 31, 32,33, 41, 42, 43, 12,13]