我是JavaScript的新手用户,他们正在学习如何以可持续和简洁的方式编写函数代码。 但是我遇到了一些问题,它引发了一个错误,例如控制台未定义或长度未定义,我不知道为什么会这样发生。
//objects
var lists = [{
ignore: true,
accept: true
},
{
meaning: true
}
];
var start1 = processthings(lists, start);
if (!start1) {
console.log("wrong! start it first!")
};
var dictionary1 = processthings(lists, dictionary);
if (!dictionary1) {
console.log("look it up!")
};
//comprehensive process function
function processthings(lists, cfunctions) {
for (var i = 0; i < lists.length; i++) {
if (cfunctions(lists[i])) {
return true;
};
return false;
};
};
//each function : number 1
function start(element) {
return (element.ignore == true);
};
// each functon : number 2
function dictionary(element) {
return (element.meaning);
};
答案 0 :(得分:0)
函数 processthings 中的for循环永远不会遍历整个列表。该函数将始终在第一次迭代后返回。
我不确定是否故意这样做。但我认为该功能应进行如下修改-
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
<script src="http://code.jquery.com/ui/1.8.20/jquery-ui.min.js" type="text/javascript"></script>
<script src="http://jquery-ui.googlecode.com/svn/tags/latest/external/jquery.bgiframe-2.1.2.js" type="text/javascript"></script>
<script src="http://jquery-ui.googlecode.com/svn/tags/latest/ui/minified/i18n/jquery-ui-i18n.min.js" type="text/javascript"></script>
<div id="maindiv">
<h3>
<span>Swap items between lists</span></h3>
<div id="dragdiv">
<ul id="allItems" runat="server">
<li id="node1">Item A</li>
<li id="node2">Item B</li>
<li id="node3">Item C</li>
<li id="node4">Item D</li>
<li id="node5">Item E</li>
<li id="node6">Item F</li>
<li id="node7">Item G</li>
<li id="node8">Item H</li>
<li id="node9">Item I</li>
</ul>
</div>
<div id="dropdiv">
<ul id="Ul1" runat="server">
<li id="Li1">Item j</li>
<li id="Li2">Item K</li>
<li id="Li3">Item L</li>
<li id="Li4">Item M</li>
<li id="Li5">Item N</li>
<li id="Li6">Item O</li>
<li id="Li7">Item P</li>
<li id="Li8">Item Q</li>
<li id="Li9">Item R</li>
</ul>
</div>
</div>
请参见工作代码here