vis.js:删除数据集中的项目 属性
vis.js: remove property of item in dataset
我正在使用 vis.js visualization library. I have a vis.js dataset,它是使用
实例化的
var nodes = new vis.DataSet([
{id: 1, label: 'Item 1', group: "special"},
{id: 2, label: 'Item 2'},
}
我想删除群组 "special"。之后,数据集的状态应该与没有组实例化的数据集相同:
var nodes2 = new vis.DataSet([
{id: 1, label: 'Item 1'},
{id: 2, label: 'Item 2'},
}
如何从数据集对象中的项目中删除 属性,而不删除项目本身?
我测试过的方法没有成功:nodes.update({id:1, groups: undefined})
nodes.update({id:1, groups: null})
, nodes.update({id:1, groups: 0})
Vis JS,合并对象的值,因此只添加/修改新值而不删除现有值。我结束了删除/插入逻辑。在你的情况下我会这样做:
const nodes = new vis.DataSet([
{id: 1, label: 'Item 1', group: "special"},
{id: 2, label: 'Item 2'},
}
const nodeId = 1;
const propertyToRemove = 'group';
// get a node
const node = nodes.get(nodeId);
// remove property
delete node[propertyToRemove];
// get positions (only for nodes with x and y coordinates)
// only if x and y are not present on original node
const coordinates = vis.Network.getPositions([nodeId])[nodeId];
// copy coordinates
node = Object.assign(node, coordinates);
// remove node
nodes.remove(nodeId);
// add cloned node
nodes.add(node);
为了方便起见,您可以将此代码编写为 vis.DataSet.prototype
上的函数
我正在使用 vis.js visualization library. I have a vis.js dataset,它是使用
实例化的var nodes = new vis.DataSet([
{id: 1, label: 'Item 1', group: "special"},
{id: 2, label: 'Item 2'},
}
我想删除群组 "special"。之后,数据集的状态应该与没有组实例化的数据集相同:
var nodes2 = new vis.DataSet([
{id: 1, label: 'Item 1'},
{id: 2, label: 'Item 2'},
}
如何从数据集对象中的项目中删除 属性,而不删除项目本身?
我测试过的方法没有成功:nodes.update({id:1, groups: undefined})
nodes.update({id:1, groups: null})
, nodes.update({id:1, groups: 0})
Vis JS,合并对象的值,因此只添加/修改新值而不删除现有值。我结束了删除/插入逻辑。在你的情况下我会这样做:
const nodes = new vis.DataSet([
{id: 1, label: 'Item 1', group: "special"},
{id: 2, label: 'Item 2'},
}
const nodeId = 1;
const propertyToRemove = 'group';
// get a node
const node = nodes.get(nodeId);
// remove property
delete node[propertyToRemove];
// get positions (only for nodes with x and y coordinates)
// only if x and y are not present on original node
const coordinates = vis.Network.getPositions([nodeId])[nodeId];
// copy coordinates
node = Object.assign(node, coordinates);
// remove node
nodes.remove(nodeId);
// add cloned node
nodes.add(node);
为了方便起见,您可以将此代码编写为 vis.DataSet.prototype
上的函数