为什么我不能得到这个数组的实际长度?

时间:2017-05-01 15:18:54

标签: javascript arrays

function getItems() {

  var item=document.getElementById('itemName').value;
  var items=[];
  var split = item.match(/\S+\s*/g);
  items.push(split);
  console.log(items.length);
}

我想获得数组的长度,当我运行此代码时,我只得到'1'作为长度。

1 个答案:

答案 0 :(得分:2)

数组中只有一个项目:match调用的结果,您将其推送到数组中。

如果您的目标是设置 items到匹配结果,则您需要分配到items而不是push。你也不会创建一个数组,因为match给你一个:

var items = item.match(/\s+\s*/g);
console.log(items.length);

示例:



function getItems() {

  var item=document.getElementById('itemName').value;
  var items = item.match(/\S+\s*/g);
  console.log(items.length);
}
getItems();

<input id="itemName" value="one two three">
&#13;
&#13;
&#13;

附注:您的结果将包含每个非空白字符系列后面的空格。如果这就是你想要的,那就太好了;如果没有,你可以查看split

var items = item.split(/\s+/);

但这取决于items中你想要的最终结果。