当我的程序来到这个方法时,似乎永远不会更新目标值。如果我输入" dave"它将保持" dave"无论对该方法进行了多少次调用。
input[type=text],input[type=email],input[type=password] {...}
如果我通过这个addFriend方法添加朋友,firstFriend将最终打印最后添加的名称。如果输入的名称是rob bill和travis 输出将是travis travis travis。
function copy() {
var regex = /^(.*)/gm;
var subst = '\#\1';
var originaltxt = $('#result1').val().replace(regex, subst);
$('#id1').html(originaltxt .trim());
}
<textarea class="result" id="result1" rows="10" cols="150" style="font-size:11px;resize: none; width:225px;">
User 1 prefix_ago
Hi How are you
User 2 prefix_ago
I am good How about you
</textarea>
<button onClick="copy()" > Copy & Replace</button>
<div id="id1">
</div>
答案 0 :(得分:2)
您总是在循环的第一次迭代中返回。如果找到该人,则返回(if
分支),如果不是,则返回null
(else
分支)。相反,你应该继续迭代,直到你找到正确的人或耗尽列表。第一个条件BTW是循环的子集(如果firstPerson
是null
目标将立即成为null
),并且可以(应该!)也被删除:
public Person lookup(String name){
Person target = null;
for (target = firstPerson; target != null; target = target.nextPerson) {
if (name.equals(target.name)) {
return target;
}
}
return target; // Or null explicitly - matter of taste.
}
答案 1 :(得分:1)
if(name.equals(target.name)){
return target;
}
else {
return null;
}
其他部分需要消失。这段代码的效果是它只检查第一个值,如果它不是你要查找的值,它会立即显示出来。
更改
return target; // replace this line
到return null;
并删除上面提到的其他部分