函数使用Javascript重申数组中的值

函数使用Javascript重申数组中的值,javascript,arrays,Javascript,Arrays,我需要创建一个函数,将一个新值输入到一个空数组中,然后该值保留在数组中,即使值发生变化。让我用一个例子来解释,到目前为止,我已经: var arr = []; arr.unshift("f"); if (arr.length > 6) { arr.pop(); } console.log(arr); arr.unshift("e"); if (arr.length > 6) { arr.pop(); } console.log(arr); arr.unshift("d"

我需要创建一个函数,将一个新值输入到一个空数组中,然后该值保留在数组中,即使值发生变化。让我用一个例子来解释,到目前为止,我已经:

var arr = [];
arr.unshift("f");
if (arr.length > 6) {
   arr.pop();
}
console.log(arr);

arr.unshift("e");
if (arr.length > 6) {
  arr.pop();
}
console.log(arr);

arr.unshift("d");
if (arr.length > 6) {
  arr.pop();
}
console.log(arr);

arr.unshift("c");
if (arr.length > 6) {
  arr.pop();
}
console.log(arr);

arr.unshift("b");
if (arr.length > 6) {
  arr.pop();
}
console.log(arr);

arr.unshift("a");
if (arr.length > 6) {
  arr.pop();
}
console.log(arr);
arr.unshift("z");
if (arr.length > 6) {
  arr.pop();
}
console.log(arr);
在空数组中,在第一个位置输入一个新值,并保留在数组arr中。这是我在控制台中得到的:

(6) ["f"]    
(6) ["e", "f"]    
(6) ["d", "e", "f"]    
(6) ["c", "d", "e", "f"]    
(6) ["b", "c", "d", "e", "f"]    
(6) ["a", "b", "c", "d", "e", "f"]    
(6) ["z", "a", "b", "c", "d", "e"]
这正是我想要实现的。我需要的不是这些值,而是一个定期更新的var

var newValue = value_to_be_updated;

function myFunction(newValue) {
    var arr = [];
    arr.unshift(newValue);
    return arr
}

if (arr.length > 6) {
    arr.pop();
}
我的目标是减少上述代码并使其成为函数,但找不到任何有用的东西。还有,即使从var中删除,输入的值是否也会保留在数组中

我们将非常感谢您的帮助


提前感谢

如果您希望在更改不起作用的源代码后,
arr
的值保持不变,则应使用提示动态获取新值。 仍然有@gurvinder372说您的函数应该是这样的

var arr = [];
function myFunction(newValue) {
  arr.unshift(newValue);
  if (arr.length > 6) {
    arr.pop();
  }
  return arr
}
for (var i = 0; i<8; i++){
   var value = prompt('enter char');
   myFunction(value);
}
然后使用它,你可以做这样的事情

var arr = [];
function myFunction(newValue) {
  arr.unshift(newValue);
  if (arr.length > 6) {
    arr.pop();
  }
  return arr
}
for (var i = 0; i<8; i++){
   var value = prompt('enter char');
   myFunction(value);
}

for(var i=0;i如果您希望在更改不起作用的源代码后
arr
的值保持不变,则应使用例如提示动态获取新值。 仍然有@gurvinder372说您的函数应该是这样的

var arr = [];
function myFunction(newValue) {
  arr.unshift(newValue);
  if (arr.length > 6) {
    arr.pop();
  }
  return arr
}
for (var i = 0; i<8; i++){
   var value = prompt('enter char');
   myFunction(value);
}
然后使用它,你可以做这样的事情

var arr = [];
function myFunction(newValue) {
  arr.unshift(newValue);
  if (arr.length > 6) {
    arr.pop();
  }
  return arr
}
for (var i = 0; i<8; i++){
   var value = prompt('enter char');
   myFunction(value);
}

for(var i=0;i在
函数
返回
之前,在
函数
本身中输入你的
if
条件。你的代码应该可以工作。你能用
创建一个可验证的代码段吗?谢谢回答。函数完成了它的工作,但如果我更改了newValue,数组不会“保存”以前插入的值(这是合理的,因为没有代码“保存”以前的值)。我想到了forEach()方法的map(),但它们返回一个新数组,仍然基于以前的数组,因此不时插入的值不会被保存/存储。因为没有代码“保存”,所以不清楚您的意思上一个值。您的
arr
是本地定义的。在函数外部声明您的arr。将
if
条件放入
函数本身,就在
返回之前。您的代码应该可以工作。您能用
创建一个可验证的代码段吗?谢谢您的回答。函数完成了它的工作,but如果我更改newValue值,数组不会“保存”先前插入的值(这是合理的,因为没有代码“保存”先前的值)方法,但它们返回一个新数组,仍然基于以前的数组,因此不保存/存储不时插入的值。由于没有“保存”的代码,因此不清楚您的意思上一个值。您的
arr
是本地定义的。请在函数外部声明您的arr。感谢您回答@wale-Your-for循环重申您在提示符下输入的不同值,但一旦您再次加载页面,数组将被重置。我对您的代码进行了如下修改:
var-arr=[];函数myFunction(newValue){arr.unshift(newValue);if(arr.length>6){arr.pop();}return arr}console.log(arr);for(var i=0;iThanks for answer@wale-your-for-loop重申在提示符下输入的不同值,但一旦再次加载页面,数组就会重置。我修改了您的代码:
var-arr=[];函数myFunction(newValue){arr.unshift(newValue);if(arr.length>6){arr.pop();}返回arr}console.log(arr);for(var i=0;i