我正在尝试从物化类别路径数组创建类别对象数组。
var data = [
'Business / Finance',
'Business / Management',
'Business / Management / Leadership',
'Business / Team / Leadership'
];
// Expected results:
var result = [
{ name: 'Business', trail: null, path: 'Business' },
{ name: 'Finance', trail: 'Business', path: 'Business / Finance' },
{ name: 'Management', trail: 'Business', path: 'Business / Management' },
{ name: 'Leadership', trail: 'Business / Management', path: 'Business / Management / Leadership' },
{ name: 'Team', trail: 'Business', path: 'Business / Team / Leadership' },
{ name: 'Leadership', trail: 'Business / Team', path: 'Business / Team / Leadership' }
];
如您所见,Business
应该只出现一次,因为所有其他都只是子类别。但是,Leadership
应该出现两次,因为两者的结构不同。
当您查看小提琴http://jsfiddle.net/9uC9Z/时,您可以看到它Business
存在 4 次。
我该如何解决这个问题?
如果生成的代码非常复杂,我将非常感谢代码注释。
编辑:数组
中的物化路径字符串data
反映书籍的类别层次结构。一个例子是:
{
title: 'Leadership 101',
author: 'John Smith',
category: 'Business / Management / Leadership'
}
那只代表一本书。我现在想为每个类别创建一个 MongoDB 文档。以上样本书将产生三个类别对象(业务、管理、领导力)。但是,如果一个类别(或子类别)对象/文档已经存在,我不需要创建另一个。
result
因此代表我将存储在我的 MongoDB 集合中的类别对象。(我将添加类别之间的关系,但这不是当前问题的一部分。)