2016-12-16 63 views
-3

我已经创建了一个数组,并试图打印出长度超过4个字母的所有单词。Javascript array long than 4

这里是我的代码:

function oppC(){ 
     var ord = ["Apple", "Two", "Yesterday", "mother", "lol", "car", "computer"]; 
     for(var i = 4; i < ord.length;i++) { 
      pEl.innerHTML = ord; 
     } 
     } 
+5

'如果(ORD [I]。长度> 4)...'任何人...?太明显了? – deceze

+2

'pEl.innerHTML + = ord [i];','+ ='否则文本将被last语句覆盖,'[i]'访问数组元素 – Satpal

回答

1

您应该使用filter功能。

这里是解决方案。

function oppC(){ 
 
     var ord = ["Apple", "Two", "Yesterday", "mother", "lol", "car", "computer"]; 
 
     console.log(ord.filter(function(item){ 
 
       return item.length>4; 
 
     })); 
 
} 
 
oppC();

如果使用IE8,请试试这个:

console.log($.grep(ord,function(item){ 
     return item.length>4; 
})); 
+1

您已经包含了jQuery。我想这是为了向后兼容'filter'(这在IE8中本身不起作用),但是你并没有使用它。如果你想让它在IE8上工作,你需要执行'$(ord).filter(function(){return this.length> 4;});否则,在这里包含jQuery没有任何意义。 – blex

+0

感谢您的意见。我更新了IE8的答案,我知道'jquery grep'是比'filter'更好的解决方案。 –

1

以您目前的for循环,你只能看5个元素向前。如果你想让它变得所有字符串长度超过4个字符,你可以这样做:

function oopC(){ 
    var ord = ["Apple", "Two", "Yesterday", "mother", "lol", "car", "computer"]; 
    for(var i = 0; i < ord.length; i++){ // cycle through **all** elements, because arrays start with 0 
     if(ord[i].length > 4){ // if the element length is greater than 4 
      pEl.innerHTML += ord[i]; // add element to the textview 
     } 
    } 
} 
0

下面是简单的代码,不需要任何JavaScript库

function oppC(){ 
    var ord = new Array("Apple", "Two", "Yesterday", "mother", "lol", "car", "computer"); 
    for(var i = 0; i < ord.length; i++) { 
     if(ord[i].length > 4){ 
      document.write(ord[i]+"<br>"); 
     } 
    } 
} 

oppC(); 
-1

你只需要添加如果一个循环内的条件,以检查是否长度大于4

function oppC() { 
    var ord = ["Apple", "Two", "Yesterday", "mother", "lol", "car", "computer"]; 
    for (var i = 0; i < ord.length; i++) { 
     if (ord[i].length > 4) { 
      pEl.innerHTML += ord[i]; 
     } 
    } 
} 
0

这是一个可能的解决方案。 CSS只是显示,如何添加项目。

function oppC(){ 
 
     var pEl = document.getElementById("output"); 
 
     var ord = ["Apple", "Two", "Yesterday", "mother", "lol", "car", "computer"]; 
 
     for(var i = 0; i < ord.length;i++) { 
 
      if (ord[i].length > 4) { 
 
       pEl.innerHTML += '<div class="long-item">' + ord[i] + '</div>'; 
 
      } 
 
     } 
 
    } 
 

 
oppC();
.output-list { 
 
    border: 1px solid #ccc; 
 
} 
 

 
.long-item { 
 
    color: #333; 
 
    font-family: monospace; 
 
    border-bottom: 1px solid #ccc; 
 
    padding: 3px 5px; 
 
}
<div id="output" class="output-list"> 
 
</div>