findNodesByExample() 与数组 Go.JS
findNodesByExample() with Array Go.JS
我搜索了将近 3 个小时的解决方案,但没有找到有效的解决方案。
我想在我的对象数组中找到一个与正则表达式匹配的名称。
这个名字在一个数组中,谁在节点中(下面的例子):
[ {
key: "avidyne_abs_nav",
fields: [{
name: "avidyne.abs_nav.A429AVIDYNE"
}]
} ]
因此,要搜索与我的正则表达式匹配的名称,这是我的代码:
let safe = input.value.replace(/[.*+?^${}()|[\]\]/g, '\$&');
let regex = new RegExp(safe, "i");
myDiagram.findNodesByExample({ key: regex },
{ fields: function(n) { return n.some(a => { regex.test(a.name) }) } });
当我搜索一个键时,findNodesByExample() return 我找到与正则表达式匹配的所有对象。但是对于字段,它 return 是一个空数组...
为了创建这个函数,我遵循 Go.JS API doc 和年龄示例
我不确定你的输入是什么,但它似乎和我预期的一样有效:
function init() {
var $ = go.GraphObject.make ; // for conciseness in defining templates
myDiagram = new go.Diagram("myDiagramDiv");
myDiagram.model = new go.GraphLinksModel(
[{
key: "avidyne_abs_nav",
fields: [{
name: "avidyne.abs_nav.A429AVIDYNE"
}]
}]);
} // end init
window.click = function() {
let safe = "A429AVIDYNE"; //input.value.replace(/[.*+?^${}()|[\]\]/g, '\$&');
let regex = new RegExp(safe, "i");
const results = myDiagram.findNodesByExample({ key: regex },
{
fields: function (n) {
return n.some(a => {
return regex.test(a.name)
}
)
}
});
console.log(results.count); // found one node
}
这会根据 node.data.fields.name 匹配正则表达式找到一个节点。
我搜索了将近 3 个小时的解决方案,但没有找到有效的解决方案。
我想在我的对象数组中找到一个与正则表达式匹配的名称。 这个名字在一个数组中,谁在节点中(下面的例子):
[ {
key: "avidyne_abs_nav",
fields: [{
name: "avidyne.abs_nav.A429AVIDYNE"
}]
} ]
因此,要搜索与我的正则表达式匹配的名称,这是我的代码:
let safe = input.value.replace(/[.*+?^${}()|[\]\]/g, '\$&');
let regex = new RegExp(safe, "i");
myDiagram.findNodesByExample({ key: regex },
{ fields: function(n) { return n.some(a => { regex.test(a.name) }) } });
当我搜索一个键时,findNodesByExample() return 我找到与正则表达式匹配的所有对象。但是对于字段,它 return 是一个空数组... 为了创建这个函数,我遵循 Go.JS API doc 和年龄示例
我不确定你的输入是什么,但它似乎和我预期的一样有效:
function init() {
var $ = go.GraphObject.make ; // for conciseness in defining templates
myDiagram = new go.Diagram("myDiagramDiv");
myDiagram.model = new go.GraphLinksModel(
[{
key: "avidyne_abs_nav",
fields: [{
name: "avidyne.abs_nav.A429AVIDYNE"
}]
}]);
} // end init
window.click = function() {
let safe = "A429AVIDYNE"; //input.value.replace(/[.*+?^${}()|[\]\]/g, '\$&');
let regex = new RegExp(safe, "i");
const results = myDiagram.findNodesByExample({ key: regex },
{
fields: function (n) {
return n.some(a => {
return regex.test(a.name)
}
)
}
});
console.log(results.count); // found one node
}
这会根据 node.data.fields.name 匹配正则表达式找到一个节点。