Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 这个算法的官方名称是什么?_Javascript_Algorithm - Fatal编程技术网

Javascript 这个算法的官方名称是什么?

Javascript 这个算法的官方名称是什么?,javascript,algorithm,Javascript,Algorithm,我有两个HTML元素,都带有数据final figure属性。元素上的最终图形中的任何一个都可以赋值或留空,但不能相互冲突。现在我正在使用一种非常低效的方法: 1) 检查第一个是否为null,如果不是null,则将其放入变量中; 2) 然后检查第二个是否为null,如果不是,第一个是否为null,然后将其复制回第一个数据最终图attr;如果它不是null并且第一个元素也不是null,那么检查它们是否被分配了相同的值,如果不是,那么它们是冲突的,在这里我们抛出一个错误,因为两个元素都被指定了不同的

我有两个HTML元素,都带有
数据final figure
属性。元素上的
最终图形
中的任何一个都可以赋值或留空,但不能相互冲突。现在我正在使用一种非常低效的方法: 1) 检查第一个是否为
null
,如果不是
null
,则将其放入变量中; 2) 然后检查第二个是否为
null
,如果不是,第一个是否为
null
,然后将其复制回第一个
数据最终图
attr;如果它不是
null
并且第一个元素也不是
null
,那么检查它们是否被分配了相同的值,如果不是,那么它们是冲突的,在这里我们抛出一个错误,因为两个元素都被指定了不同的值。如果第二个值为
null
,而第一个值不是,则将第一个值复制到第二个值


我模模糊糊地记得其中一本教科书中的这个算法,但我记不清它的名字了。我肯定不是河内塔。有没有更好的实施方法?谢谢。

您的算法可以简化。以下是伪代码:

var1 = elem1.attribute
var2 = elem2.attribute
if (var1 && var2 && var1 != var2) {
    report conflict
} else if (!var1 || !var2) { // one is null
    value = var1 || var2; // Get the non-null value
    var1.attribute = var2.attribute = value // Assign it to both
}

我不明白你在干什么。为什么不
如果(val1&&val2&&val1==val2){report error}
当其中一个值为空时,为什么要将值从一个复制到另一个?这不会引起冲突吗?哦,我误解了。冲突是指当它们不同时,我认为它们是相同的。我不认为这是一种常见的编程模式,我认为它不足以有一个名称。请注意,属性值是字符串;当属性存在时,它不能有
null
值。如果没有,它将是
未定义的
。如果“empty”,它的值就是空字符串。谢谢Barmar,如果我们有10个元素要比较,而不是2个呢?这个算法是如何从2扩展到10的?使用一个循环来测试所有的值是相同的还是空的,并将第一个非空值放入一个变量中。然后另一个循环可以将变量分配给所有空条目。另外,我有点难以理解您的
,否则如果是
部分,为什么需要检查
!var1 | | |!var2
?我认为,一旦代码执行到这一点,不管发生什么,它都应该继续同步该值。如果
,是否真的有合理的理由来解释这个问题?如果条件为false,它们都已设置为相同的值,因此无需再次设置。顺便说一下,我认为这个比较值得一提,将其命名为
Barmar sync method