constructor(list, options)
list
— массив элементов. Например, { id: 5: parent: 1 }
.options
— необязательный параметр. Объект для описания флагов и имён полей для дерева..GetTree() Этот метод возвращает дерево в формате JSON.
tree.GetTree()
function compareById(vector) {
return (a, b) => {
const aid = Number(a.get("id"))
const bid = Number(b.get("id"))
if (aid > bid) {
return vector ? 1 : -1
} else if (aid < bid) {
return vector ? -1 : 1
} else {
return 0
}
}
}
ltt.sort(compareById(false))
// создаём дерево
import JsTreeList from "js-tree-list"
const object = { id: 1, title: "Root" }
const tree = new JsTreeList.Tree(object)
// добавляем узлы
const regularObject = { id: 2, title: "Node 2" }
tree.add(parentNode => {
return parentNode.get("id") === 1
}, regularObject)
// содержит узел
const targetNode = tree.contains(currentNode => {
return currentNode.get("id") === 2
})
// удаляем узел
const result = tree.remove(currentNode => {
return currentNode.get("id") === 2
})
// обход
const criteria = currentNode => currentNode.get("id") === 1
tree.traversal(criteria, currentNode => {
currentNode.set("some", true)
})
function compareById(vector) {
return (a, b) => {
const aid = Number(a.get("id"))
const bid = Number(b.get("id"))
if (aid > bid) {
return vector ? 1 : -1
} else if (aid < bid) {
return vector ? -1 : 1
} else {
return 0
}
}
}
tree.sort(compareById(false)) // desc
Доступны и другие методы.
Это класс управления деревом.
contstructor(object)
const object = { id: 1, title: "Root" }
const tree = new JsTreeList.Tree(object)
.add(criteria, object) Добавляет узел в дерево, если критерий истинен.
const object = { id: 1, title: "Root" }
const tree = new JsTreeList.Tree()
const resultTree = tree.add("root", object)
const regularObject = { id: 2, title: "Node 2" }
const resultTree = tree.add(parentNode => {
return parentNode.get("id") === 1
}, regularObject)
.remove(criteria) Удаляет узел из дерева, если критерий истинен.
const result = tree.remove(currentNode => {
return currentNode.get("id") === 7
})
.contains(criteria) Ищет узел в дереве по критерию.
const targetNode = tree.contains(currentNode => {
return currentNode.get("id") === 7
})
.sort(compare) Сортирует дерево.
function compareById(vector) {
return (a, b) => {
const aid = Number(a.get("id"))
const bid = Number(b.get("id"))
if (aid > bid) {
return vector ? 1 : -1
} else if (aid < bid) {
return vector ? -1 : 1
} else {
return 0
}
}
}
tree.sort(compareById(false)) //Desc
.move(criteria, destination) Перемещает нужную ветвь или узел к узлу или ветви назначения в соответствии с критериями.
return boolean
examples:
const search = currentNode => currentNode.get("id") === 7
const destination = currentNode => currentNode.get("id") === 3
const result = tree.move(search, destination)
.traversal(criteria, callback)
boolean
null
const criteria = currentNode => currentNode.get("id") === 7
tree.traversal(criteria, currentNode => {
currentNode.set("some", true)
})
tree.traversal(null, currentNode => {
if (currentNode.get("id") % 2 === 0) {
currentNode.set("some", true)
}
})
.toJson(options)
object
. Optional
boolean
. Allow empty children. Default true
string
. Field name for children. Default children
object
const json = tree.toJson()
This is the node management class
object
array
number
constructor(json)
json
objectimport JsTreeList from "js-tree-list"
const rootContent = {
id: 1,
name: "Root"
}
let node = new JsTreeList.Node(rootContent)
Node
— created nodeobject
/jsonconst rootContent = {
id: 1,
name: "Root"
}
let node = new JsTreeList.Node(rootContent)
const childNode = node.add({ id: 2, name: "Two node" })
Node
const removedNodes = node.remove(itemNode => {
return itemNode.get("id") === 3
})
mixed
id
or fullname
, etc...node.get("id") // 1
node.get("name") // "Some name"
boolean
String
field namemixed
node.set('id', 100)); // returned `true`. Node.content.id = 100
node.get('id'); // 100
null
function compareById(vector) {
return (a, b) => {
const aid = Number(a.get("id"))
const bid = Number(b.get("id"))
if (aid > bid) {
return vector ? 1 : -1
} else if (aid < bid) {
return vector ? -1 : 1
} else {
return 0
}
}
}
node.sort(compareById(false))
null
function
criteria each nodesfunction
fire when criteria is true for node// for all nodes
node.traversal(null, currentNode => {
const name = currentNode.get("name")
currentNode.set("name", `${name}!`) // Last symbol "!"
})
// only for node.id == 3
node.traversal(
currentNode => currentNode.get("id") === 3,
currentNode => {
const name = currentNode.get("name")
currentNode.set("name", `${name}!`) // Last symbol "!"
}
)
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )