Javascript函数错误:长度未定义

时间:2018-07-30 15:46:05

标签: javascript

我是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);
};

1 个答案:

答案 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