鍍金池/ 問答/Linux  HTML/ 判斷對象data不同key的值是否有重復(fù),如果有alert"重復(fù)&qu

判斷對象data不同key的值是否有重復(fù),如果有alert"重復(fù)",請問下用ES6怎么操作?;蛘逬QUERY也可以

data = {
      "bqw":"123",
      "bfr": "1234",
      "asq": "1235",
      "ase":"1236",
      "bd": "1237",
      "bua": "123",
      "bgg": "1238",
      "bug": "1239",
    };

//判斷對象data不同key的值是否有重復(fù),如果有alert"重復(fù)"

回答
編輯回答
空白格

let check = (data) => {

let arr = []
for (let k in data) {
    if (arr.indexOf(data[k]) === -1) {
        arr.push(data[k])
    } else {
        return true
    }
} 

}
let data = {

  "bqw": "123",
  "bfr": "1234",
  "asq": "1235",
  "ase": "1236",
  "bd": "1237",
  "bua": "123",
  "bgg": "1238",
  "bug": "1239"

}
if (check(data)) {

alert('重復(fù)')

}
// true
大概就是一個數(shù)組臨時保存object的值,indexof來判斷下一值在數(shù)組中是否存在,存在返回true

2018年1月13日 05:35
編輯回答
咕嚕嚕

寫個方法,把data的value作為key值重新建個對象;

function run(obj){
    let md={};
    for(k in obj){
        md[obj[k]]? md[obj[k]]++: md[obj[k]]=1
    }
    return md;
}
//輸出value出現(xiàn)的次數(shù)
run(data)//123: 2, 1234: 1, 1235: 1, 1236: 1, 1237: 1, 1238: 1, 1239: 1
2018年8月23日 09:06
編輯回答
尛憇藌

題主都問ES6了,怎么沒人回答一下咩

const data = {
      "bqw":"123",
      "bfr": "1234",
      "asq": "1235",
      "ase":"1236",
      "bd": "1237",
      "bua": "123",
      "bgg": "1238",
      "bug": "1239",
    };


// ES7
Object.values(data).length !== new Set(Object.values(data)).size && console.log('重復(fù)')

// ES6
const values = Object.keys(data).map(e => data[e])
values.length !== new Set(values).size && console.log('重復(fù)')
// 自行替換console.log 為alert
2017年8月20日 04:43