我有这个递归函数:
function inline(o) {
return objEntries(o).reduce(function (result, item) {
var key = item[0];
var val = item[1];
if (val instanceof Object) {
objEntries(inline(val)).forEach(function (subItem) {
var subKey = subItem[0];
var subVal = subItem[1];
result[key + '.' + subKey] = subVal;
});
} else {
result[key] = val;
}
return result;
}, {});
}
function objEntries(obj) {
return Object.keys(obj).map(function (key) {
return [key, obj[key]];
});
}
获取对象并内联其属性。例如,这个:
var o = {some: {prop:5}}
成为这个:
var o = {"some.prop": 5};
我想表达它是如何在视觉上工作的。我可以使用哪些图表或符号?有人可以根据我概述的功能提供小例子吗?
答案 0 :(得分:2)
你不会。 UML非常适合抽象。但是一旦谈到算法,它就毫无价值。尽管您可能会提供算法,但不要尝试使用序列图和片段。 UML模型和代码之间存在某种裂缝,最好不要用UML来弥补这种裂缝。如果您使用UML抽象地描述目标并将其余部分留给编码人员,那么这是迄今为止最好的方法。
P.S。我一直梦想着90年代的图形编程。我们有3和4GL,但你今天在实践中看到了什么?更像C的东西。祝Alf好运,但它也可能以新鲜的猫汁结束。
答案 1 :(得分:2)
我不同意托马斯。 Alf是一种新的UML编程语言,默认情况下具有功能,OO和并行处理功能。它生成活动图。
即使您不使用Alf,活动也可以递归调用自己。活动图比Alf要写的更难绘制。 Alf非常紧凑而且功能强大。
答案 2 :(得分:2)
理论上活动图能够呈现算法逻辑。
然而,这应该仍然在一些抽象层次上完成。使用UML记录每行代码没有意义,或者你最终会使用UML进行编程,然后你必须寻找一种工具,将你的“UML代码”转换为“常规”代码(或者UML编译器。)