在 JavaScript 中将字符串转换为数组名称
converting string to array name in JavaScript
我的目标是能够创建一个可以将字符串作为参数的函数,并能够创建一个我可以向其中添加项目的数组。你可以在这里看到我的尝试,但它似乎不起作用。也就是说,如果我想创建一个名为 GroceryList 的列表,它是 returns GroceryList,但是当我想向其中添加一个项目时,它说 GroceryList 未定义。
function removeInstance(list, item){
for(var i = 0; i < list.length; i++){
if(item === list[i]){
list.splice(i, 1);
console.log(list);
break;
}
}
}
function makeList(name){
name = [];
console.log(name);
return name;
}
function removeAllItems(list, item){
for(var i = 0; i < list.length; i++){
if(item === list[i]){
list.splice(i, 1);
i--;
}
}
console.log(list);
}
function addItem(list, item){
list.push(item);
console.log(list);
}
任何帮助都会很棒。谢谢!
JavaScript函数中的参数按值传递,而不是引用;因此,当你做这样的事情时
var foo = 'bar';
function makeList(name){
name = [];
console.log(name);
return name;
}
makeList(foo);
console.log(foo); // shows 'bar'
您没有修改在函数外部声明的变量。对参数的更改只会影响该局部函数而不影响原始变量。
无论如何,我想不出任何可能需要这样一个 makeList 函数的场景。如果您需要一个数组,只需创建一个 - 不需要这个!
您需要一个在其中创建此数组的范围。假设您将 JavaScript 放在 HTML 页面中并且您希望数组在全局范围内,那么您可以将数组创建为 window 对象的 属性 :
function makeList(name){
window[name] = [];
return window[name];
}
你可以这样使用它:
var arr = makeList("myList");
myList.push("hello");
alert('item 0 = ' + myList[0]);
我的目标是能够创建一个可以将字符串作为参数的函数,并能够创建一个我可以向其中添加项目的数组。你可以在这里看到我的尝试,但它似乎不起作用。也就是说,如果我想创建一个名为 GroceryList 的列表,它是 returns GroceryList,但是当我想向其中添加一个项目时,它说 GroceryList 未定义。
function removeInstance(list, item){
for(var i = 0; i < list.length; i++){
if(item === list[i]){
list.splice(i, 1);
console.log(list);
break;
}
}
}
function makeList(name){
name = [];
console.log(name);
return name;
}
function removeAllItems(list, item){
for(var i = 0; i < list.length; i++){
if(item === list[i]){
list.splice(i, 1);
i--;
}
}
console.log(list);
}
function addItem(list, item){
list.push(item);
console.log(list);
}
任何帮助都会很棒。谢谢!
JavaScript函数中的参数按值传递,而不是引用;因此,当你做这样的事情时
var foo = 'bar';
function makeList(name){
name = [];
console.log(name);
return name;
}
makeList(foo);
console.log(foo); // shows 'bar'
您没有修改在函数外部声明的变量。对参数的更改只会影响该局部函数而不影响原始变量。
无论如何,我想不出任何可能需要这样一个 makeList 函数的场景。如果您需要一个数组,只需创建一个 - 不需要这个!
您需要一个在其中创建此数组的范围。假设您将 JavaScript 放在 HTML 页面中并且您希望数组在全局范围内,那么您可以将数组创建为 window 对象的 属性 :
function makeList(name){
window[name] = [];
return window[name];
}
你可以这样使用它:
var arr = makeList("myList");
myList.push("hello");
alert('item 0 = ' + myList[0]);