JavaScript根据对象某个属性排序(promise 案例)
1.这是第一种解决思路
var arr=[{name:'阿凯',money:10},{name:'阿包',money:15},{name:'阿毅',money:13},];function arrSortByObjectAttr(arr,key){let result=arr.sort((a,b)=>{return a[key]-b[key];});return result;};console.log(arrSortByObjectAttr(arr,'money'));
2.这是第二种解决思路
var newArr=[{name:'阿凯',money:10},{name:'阿包',money:15},{name:'阿毅',money:13},];function sortBy(attr, isReverse = false) {isReverse = isReverse ? 1 : -1return function (a, b) {a = a[attr];b = b[attr];if (a > b) {return isReverse * 1} else if (a < b) {return isReverse * -1}return 0}};newArr.sort(sortBy('money',true))
3.以下提供一个promise案例
<script>function getNum(){return new Promise(function(resolve,reject){setTimeout(() => {resolve();console.log('哈哈');}, 3000);})};async function test(){const res=await getNum();};test()// var res=new Promise(function(resolve,reject){// console.log('A');// resolve();// }).then(()=>{// console.log('B');// return new Promise(function(resolve,reject){// console.log('C');// resolve();// }).then(()=>{// console.log('F');// return new Promise(function(resolve,reject){// console.log('I');// resolve();// }).then(()=>{// console.log('G')// }).then(()=>{// console.log('H')// })// }).then(()=>{// console.log('E')// })// }).then(()=>{// console.log('D')// });// console.log(res)</script>
4.ES6对象解构案例
<script>// const xts={// name:'小天使',// pailiang:'2.0T',// qudong:'前驱'// };const res={arr:[1,3,4,6,7,5],time:'234244',age:244,ats:{name:'ats',pailiang:'2.0T',qudong:'前驱'}}const [...newArr]=res.arr;const {ats}=res;console.log(newArr,'解构');console.log(ats,'解构');function operationObject(obj){return Object.keys(obj)};// console.log(operationObject(xts));</script><script>const ct={ats:{name:'hh',age:30,p:'fs'},data:{code:00,sta:1,xts:{name:'hhhhh',age:2322,r:09}}};const {xts}=ct.data;console.log(xts,'解构');</script>
5.查看对象是否有空属性+如果将对象属性组合起开(em:’小邱是个大帅比’)
<script>let obj={desc:'',name:'小邱',age:18,bbq:[{desc:'帅',age:18},{desc:'帅气',age:19},{desc:'帅气逼人',age:20},]};obj.desc = obj.bbq.map(item => item.desc).join(',')console.log(obj.desc);obj.desc=obj.bbq.map(item=>{item.desc=obj.name+'超级'+item.desc.join(',')})// // 怎么让obj.desc="帅,帅气,帅气逼人"//------------------------------------------------------------------------------------------// 查看对象是否有空属性let obj1={name:'43',age:12,bh:'',hb:null,oo:undefined,pp:'',lp:'324'};function fn(oldData){Object.keys(oldData).sort().forEach(function(key) {// console.log(key,'键');// console.log(oldData[key],'值');if(oldData[key]){console.log(oldData[key]);}else{}});};console.log(fn(obj1));// Object.keys(obj1).forEach(key=>{// console.log(key,'键');// console.log(obj1[key],'zhi');// })</script>
6.JS判断两个数组是否完全相等
<script>let arr1=[1,3,5,7,9];let arr2=[2,3,5,7,9];function testIsSameArr(arr,newArr){if(arr.length!=newArr.length){return false}if(arr!==newArr){return false;}arr.forEach(item,index => {if(arr[index]!==newArr[index]){return false;}});};console.log(testIsSameArr(arr1,arr2));console.log(JSON.stringify(arr1)===JSON.stringify(arr2));</script>
