判断对象是否为空

第二种判断内置对象必须都要有值。既通过判断数组长度进行比较。

let val = {
  type: 1,
  Number: 123,
  str: '描述',  
  status: false
}

let num = ''
// 检索 val 的值有没有等于空的,
let arr = Object.values(val).filter((item, index) => {
  num = index + 1            // 计算出有值的数组长度
  // 将不等空的数组抛出去。
  if (item !== '') return true
})

// 如果 有些值需要传空,可用 num 进行判断 数组的长度
val.type === 1 ? num-- : num
if (arr.length === num) {
    console.log('ajax')
}


// 第二种
const status = Object.values(val).filter((item) => item)
console.log(Object.values(val))
console.log(status)
if (status.length !== Object.values(val).length) {
  return this.$message({
    message: '不能为空!',
    type: 'error'
  })
}

数组从小大排序

let data = [10, 5, 3, 6, 8, 12]
// sort 排序数组,  slice 截取数组前三名
this.rank = data.sort((a, b) => b - a).slice(0, 3)

检索数组下标 / 值

// 检索数组下标对应的值。
function f(arr, item) {
    return  arr.filter((e, index) => {
        if (item === index) return e
    })
}
console.log(f([12, 3, 4, 5], 2)) // 3


// 检索数组下某个值对应的下标。
function fd(arr, item) {
    return arr.indexOf(item);
}
console.log(fd([12, 3, 4, 5, 2, 25], 12)) // 0

数组去重

/**
  * 第一种去重
  * @type {number[]}
  */
let arr = [1, 2, 3, 4, 5, 2, 4, 8, 9, 6, 7, 5, 6]
function DelRepeat(arr){
    // ES6提供了新的数据结构Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。
    let app = new Set(arr)
    console.log(app)
}
DelRepeat(arr)  // 打印 [1,2,3,4,5,8,9,6,7]


/**
  * 第二种 高阶
  * @param arr
  * @returns {*}
  * @constructor
  */
function DelRepeatTwo(arr){
    let app = new Set(arr)
    return arr.filter(item =>{
        // 创建一个可以唯一标识对象的字符串id
        let id = item + JSON.stringify(item)
        // has 判断某元素是否存在
        if (app.has(id)) { return false }else {
            // 添加某个值,返回 Set 结构本身,当添加实例中已经存在的元素,set不会进行处理添加
            app.add(id)
            return true
        }
    })
}
DelRepeatTwo(arr)

对象基础

//json对象
var json={ "firstName":"Bill" , "lastName":"Gates"};
//给json对象添加新的属性并赋值
json.sex="man";
//也可以如下添加新的属性并赋值
json["sex"]="man";


//删除json对象的firstName属性
delete json.firstName;
//也可以如下删除firstName属性的值
delete json["firstName"];


//修改json对象的firstName属性的值
json.firstName="Thomas";
//也可以如下修改firstName属性的值
json["firstName"]="Thomas";


// 循环中依次添加对象
let isObj = {};
for (const obj in list) {
    isObj[[list[obj].value]] = list[obj].prop
}


// 也可以用eval依次添加方法,此方法慎用
let isObj = {}
for(let i = 0; i<list.length; i++) {
    eval("isObj."+list[i].value+"="+list[i].prop);
}