写的不好,个人记录方便时使用,仅供参考. 有不足请多多指正刚刚学前端
/**
* @param {*} ArrayList 需要分类的数组
* @param {*} objectKeyName 需要分类的对象键名称
*/
function classification(ArrayList, objectKeyName) {
let newArrayPersevationKeyName = [];
if (ArrayList === null || ArrayList.lenght === 0) return;
return ArrayList.reduce((oldData, newData, index) => {
if (newData.constructor === Array) {
newArrayPersevationKeyName.push(...newData);
if (ArrayList.length - 1 === index) {
console.log(index)
oldData.push(...classification(newArrayPersevationKeyName, objectKeyName));
return oldData;
}
return oldData;
} else if (newData.constructor === Object) {
if (newArrayPersevationKeyName.length === 0) {
oldData.push([newData]);
newArrayPersevationKeyName.push(newData[objectKeyName]);
return oldData;
}
if (newArrayPersevationKeyName.indexOf(newData[objectKeyName]) != -1) {
oldData[newArrayPersevationKeyName.indexOf(newData[objectKeyName])].push(newData);
} else {
oldData.push([newData]);
newArrayPersevationKeyName.push(newData[objectKeyName]);
}
return oldData;
}
}, [])
}