单击获取数组中的值

时间:2019-03-30 16:50:00

标签: javascript

我想从click事件的数组中获取值。我怎样才能做到这一点。尝试了一些代码不起作用。

var array = ['jane', 'alax', 'russell', 'max'];
var newArr = [];
function myFunction() {
  for(var i=0; i<=array.length; i++) {
  console.log(array);
       newArr.push(array[i]);
   }
}
document.getElementById("res").innerHTML = newArr;

它应该在第一次单击时先添加简,然后再单击添加alax,依此类推。

3 个答案:

答案 0 :(得分:0)

在您当前的情况下,它会遍历每次点击的所有元素。为了使它像一个一个一样,使用一个计数器变量,该变量在每次单击时都会递增,直到达到数组长度为止,然后使用它来使元素推送并最终更新事件处理程序中的HTML以在每次单击时进行更新。

var array = ['jane', 'alax', 'russell', 'max'];
var newArr = [];
// variable for keep track of clicks
var c = 0;

function myFunction() {
  // check value of counter
  if (c < array.length) {
    // push value and increment counter
    newArr.push(array[c++])
    // set html
    document.getElementById("res").innerHTML = newArr;
  }
}
<div id="res"></div>

<button onclick="myFunction()">click</button>

答案 1 :(得分:0)

因此,基本上,下面的脚本所做的是每次您运行函数“ onCLick”时,它将在列表中添加下一项。

var i = 0
var array = ['jane', 'alax', 'russell', 'max'];
var newArr = [];
//Init Vars^^

function onClick(){
    console.log(array[i])
    newArr.push(array[i])
    if(i<newArr.length){
        ++i
    }
};

答案 2 :(得分:0)

我们可以这样设置:将initialValue的{​​{1}}指向数组的第一个元素,然后在每次连续的调用中,将0递增1以获取下一个元素放入新数组initialValue中,直到耗尽数组为止。

display数组中添加元素之后,我们只需使用display将数组的所有值连接到一个逗号分隔的字符串中。

Array.join
let clickHandler = (function(){
 const array = ['jane', 'alax', 'russell', 'max'];
 let initialValue = 0;
 let display = [];
 function clickHandler(){
    display = initialValue < array.length ? display.concat(array[initialValue++]): display;
    document.getElementById("res").textContent = display.join();
 }
 return clickHandler;
})();