4 回答

TA貢獻2080條經驗 獲得超4個贊
用于_.partition()創建兩組 - 一組用于真實值,另一組用于虛假值。解構并創建對象:
const datas=[{_id:"5ea2ecbde53c090b4ba4fa12",firstName:"Dillon",surname:"Mclaughlin",guid:"a727438f-4ddc-4422-af4a-c7396fda73c3",isActive:true,balance:"$3,331.33",picture:"http://placehold.it/32x32",age:37,type:"student"},{_id:"5ea2ecbd067a8ad1cb1f9e62",firstName:"Fleming",surname:"Austin",guid:"e228bbea-ef6b-4709-995c-bf485fa3665c",isActive:true,balance:"$1,869.92",picture:"http://placehold.it/32x32",age:35,type:"teacher"},{_id:"5ea2ecbd0d1a074b255a1349",firstName:"Kaufman",surname:"Alford",guid:"176fb7fe-b7bc-4574-8887-4252a042b24a",isActive:true,balance:"$2,163.34",picture:"http://placehold.it/32x32",age:29,type:"student"},{_id:"5ea2ecbd1162ee44119aa0d3",firstName:"Sykes",surname:"Petty",guid:"92b13963-7d32-469c-be80-c88728a7842a",isActive:false,balance:"$2,728.46",picture:"http://placehold.it/32x32",age:37},{_id:"5ea2ecbd297854a2f85909a4",firstName:"Stuart",surname:"Pickett",guid:"322031f9-1a71-44ae-b1cf-cbe7430b78b6",isActive:false,balance:"$1,725.25",picture:"http://placehold.it/32x32",age:25,type:"student"},{_id:"5ea2ecbd6ef4a9bee37a223a",firstName:"Berg",surname:"Hewitt",guid:"ab05bed9-29e4-4570-aa12-fead954417b0",isActive:false,balance:"$2,935.72",picture:"http://placehold.it/32x32",age:31}];
const [withType, withoutType] = _.partition(datas, 'type');
console.log({ withType, withoutType });
.as-console-wrapper { max-height: 100% !important; top: 0; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>

TA貢獻1906條經驗 獲得超10個贊
您可以提供一個函數作為第二個參數,_.groupBy()如果'withType'當前對象具有該type屬性(使用檢查_.has()),'withoutType'則該函數將返回,否則將返回:
const data = [{_id:"5ea2ecbde53c090b4ba4fa12",firstName:"Dillon",surname:"Mclaughlin",guid:"a727438f-4ddc-4422-af4a-c7396fda73c3",isActive:true,balance:"$3,331.33",picture:"http://placehold.it/32x32",age:37,type:"student"},{_id:"5ea2ecbd067a8ad1cb1f9e62",firstName:"Fleming",surname:"Austin",guid:"e228bbea-ef6b-4709-995c-bf485fa3665c",isActive:true,balance:"$1,869.92",picture:"http://placehold.it/32x32",age:35,type:"teacher"},{_id:"5ea2ecbd0d1a074b255a1349",firstName:"Kaufman",surname:"Alford",guid:"176fb7fe-b7bc-4574-8887-4252a042b24a",isActive:true,balance:"$2,163.34",picture:"http://placehold.it/32x32",age:29,type:"student"},{_id:"5ea2ecbd1162ee44119aa0d3",firstName:"Sykes",surname:"Petty",guid:"92b13963-7d32-469c-be80-c88728a7842a",isActive:false,balance:"$2,728.46",picture:"http://placehold.it/32x32",age:37},{_id:"5ea2ecbd297854a2f85909a4",firstName:"Stuart",surname:"Pickett",guid:"322031f9-1a71-44ae-b1cf-cbe7430b78b6",isActive:false,balance:"$1,725.25",picture:"http://placehold.it/32x32",age:25,type:"student"},{_id:"5ea2ecbd6ef4a9bee37a223a",firstName:"Berg",surname:"Hewitt",guid:"ab05bed9-29e4-4570-aa12-fead954417b0",isActive:false,balance:"$2,935.72",picture:"http://placehold.it/32x32",age:31}];
const splittedData = _.groupBy(data, o => _.has(o, 'type') ? 'withType' : 'withoutType');
console.log(splittedData);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>

TA貢獻1818條經驗 獲得超7個贊
您可以檢查對象中是否存在并獲取按或type分組的對象。truefalse
const datas=[{_id:"5ea2ecbde53c090b4ba4fa12",firstName:"Dillon",surname:"Mclaughlin",guid:"a727438f-4ddc-4422-af4a-c7396fda73c3",isActive:true,balance:"$3,331.33",picture:"http://placehold.it/32x32",age:37,type:"student"},{_id:"5ea2ecbd067a8ad1cb1f9e62",firstName:"Fleming",surname:"Austin",guid:"e228bbea-ef6b-4709-995c-bf485fa3665c",isActive:true,balance:"$1,869.92",picture:"http://placehold.it/32x32",age:35,type:"teacher"},{_id:"5ea2ecbd0d1a074b255a1349",firstName:"Kaufman",surname:"Alford",guid:"176fb7fe-b7bc-4574-8887-4252a042b24a",isActive:true,balance:"$2,163.34",picture:"http://placehold.it/32x32",age:29,type:"student"},{_id:"5ea2ecbd1162ee44119aa0d3",firstName:"Sykes",surname:"Petty",guid:"92b13963-7d32-469c-be80-c88728a7842a",isActive:false,balance:"$2,728.46",picture:"http://placehold.it/32x32",age:37},{_id:"5ea2ecbd297854a2f85909a4",firstName:"Stuart",surname:"Pickett",guid:"322031f9-1a71-44ae-b1cf-cbe7430b78b6",isActive:false,balance:"$1,725.25",picture:"http://placehold.it/32x32",age:25,type:"student"},{_id:"5ea2ecbd6ef4a9bee37a223a",firstName:"Berg",surname:"Hewitt",guid:"ab05bed9-29e4-4570-aa12-fead954417b0",isActive:false,balance:"$2,935.72",picture:"http://placehold.it/32x32",age:31}];
const splittedData = _.groupBy(datas, o => 'type' in o ? "withType" : "withOutType");
console.log(splittedData);
.as-console-wrapper { max-height: 100% !important; top: 0; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>

TA貢獻1821條經驗 獲得超5個贊
我看到這樣的解決方案:
const splits = [
[...datas.filter(element => element.type)],
[...datas.filter(element => !element.type)]
]
添加回答
舉報