Javascript 基于数组创建变量
我有以下数组和一个获取键的循环() 显然,有时数组中可能只有一个键,有时是2或3个键,因此Javascript 基于数组创建变量,javascript,arrays,Javascript,Arrays,我有以下数组和一个获取键的循环() 显然,有时数组中可能只有一个键,有时是2或3个键,因此t[0]并不总是test\u user 我需要以某种方式将数组传递给函数并执行某种匹配,如果数组键以test\u user\u开头,则获取该值并将其分配给define变量 谢谢你们的帮助 您可以这样做,使用split函数: var i; var feeds = ["test_user_201508_20150826080829.txt:12345","test_user_list20150826:666",
t[0]
并不总是test\u user
我需要以某种方式将数组传递给函数并执行某种匹配,如果数组键以test\u user\u
开头,则获取该值并将其分配给define变量
谢谢你们的帮助 您可以这样做,使用split函数:
var i;
var feeds = ["test_user_201508_20150826080829.txt:12345","test_user_list20150826:666","test_list_Summary20150826.txt:321"];
for (i = 0; i < feeds.length; i++) {
var feed = feeds[i];
console.log(feed.split(/[:]/));
}
您可以使用split函数这样做:
var i;
var feeds = ["test_user_201508_20150826080829.txt:12345","test_user_list20150826:666","test_list_Summary20150826.txt:321"];
for (i = 0; i < feeds.length; i++) {
var feed = feeds[i];
console.log(feed.split(/[:]/));
}
您不能(合理地)在运行时创建具有动态名称的变量。(这在技术上是可能的。)
相反,您可以创建对象属性:
var feeds = ["test_user_201508_20150826080829.txt:12345","test_user_list20150826:666","test_list_Summary20150826.txt:321"];
var obj = {};
feeds.forEach(function(entry) {
var parts = entry.split(":"); // Splits the string on the :
obj[parts[0]] = parts[1]; // Creates the property
});
现在,obj[“test\u user\u 201508\u 20150826080829.txt”
的值为“12345”
现场示例:
var feeds=[“测试用户201508测试用户20150826080829.txt:12345”,“测试用户列表20150826:666”,“测试列表摘要20150826.txt:321”];
var obj={};
feeds.forEach(函数(条目){
var parts=条目。拆分(“:”);
obj[零件[0]]=零件[1];
});
log(obj[“测试用户”\u 201508\u 20150826080829.txt])代码>
您不能(合理地)在运行时创建具有动态名称的变量。(这在技术上是可能的。)
相反,您可以创建对象属性:
var feeds = ["test_user_201508_20150826080829.txt:12345","test_user_list20150826:666","test_list_Summary20150826.txt:321"];
var obj = {};
feeds.forEach(function(entry) {
var parts = entry.split(":"); // Splits the string on the :
obj[parts[0]] = parts[1]; // Creates the property
});
现在,obj[“test\u user\u 201508\u 20150826080829.txt”
的值为“12345”
现场示例:
var feeds=[“测试用户201508测试用户20150826080829.txt:12345”,“测试用户列表20150826:666”,“测试列表摘要20150826.txt:321”];
var obj={};
feeds.forEach(函数(条目){
var parts=条目。拆分(“:”);
obj[零件[0]]=零件[1];
});
log(obj[“测试用户”\u 201508\u 20150826080829.txt])代码>
使用拆分方法
var feeds = ["test_user_201508_20150826080829.txt:12345","test_user_list20150826:666","test_list_Summary20150826.txt:321"];
feedMap = {}
for (i = 0; i < feeds.length; i++) {
var temp = feeds[i].split(':');
feedMap[temp[0]] = temp[1];
}
可通过以下方式访问:
feedMap["test_user_201508_20150826080829.txt"]
下面是一个使用拆分方法的
var feeds = ["test_user_201508_20150826080829.txt:12345","test_user_list20150826:666","test_list_Summary20150826.txt:321"];
feedMap = {}
for (i = 0; i < feeds.length; i++) {
var temp = feeds[i].split(':');
feedMap[temp[0]] = temp[1];
}
可通过以下方式访问:
feedMap["test_user_201508_20150826080829.txt"]
下面是一个这不是一个很好的主意,但是如果您真的需要在运行时创建变量,下面是代码:
for (i = 0; i < feeds.length; i++)
{
var feed = feeds[i];
window[feed.substring(0, feed.indexOf(":"))] = feed.match(/\d+$/);
}
alert(test_user_201508_20150826080829)
for(i=0;i
当然,您不能有任何包含禁止符号(如“.”)的变量名字符串
问候,,
Michał这不是一个好主意,但是如果您真的需要在运行时创建变量,下面是代码:
for (i = 0; i < feeds.length; i++)
{
var feed = feeds[i];
window[feed.substring(0, feed.indexOf(":"))] = feed.match(/\d+$/);
}
alert(test_user_201508_20150826080829)
for(i=0;i
当然,您不能有任何包含禁止符号(如“.”)的变量名字符串
问候,,
米莎对不起,我不明白,但你想做什么?为键分配新值?使用对象,而不是动态命名的变量。后者容易出现各种意外故障和安全漏洞。对不起,我不明白,但你想做什么?为键分配新值?使用对象,而不是动态命名的变量。后者容易出现各种意外故障和安全漏洞。非常感谢您的代码,在任何情况下,如果我想将值分配给静态变量,我如何实现这一点?请查看我更新的问题。@J.D:“…如果我想将值分配给静态变量…”您没有。:-)我知道你认为你会,但那条路(用一个80年代的词)太粗糙了。做这件事的代码很复杂,容易出错,性能很差,很难维护,最重要的是没有必要。使用对象(或数组)是处理这种动态情况的正确方法。问题的更新显示您分配了一个testUser
变量,但当您标记时,需要有一个动态数量的变量。这就是对象和数组的用途。非常感谢您的代码,在任何情况下,如果我想将值分配给静态变量,我如何实现这一点?请查看我更新的问题。@J.D:“…如果我想将值分配给静态变量…”您没有。:-)我知道你认为你会,但那条路(用一个80年代的词)太粗糙了。做这件事的代码很复杂,容易出错,性能很差,很难维护,最重要的是没有必要。使用对象(或数组)是处理这种动态情况的正确方法。问题的更新显示您分配了一个testUser
变量,但当您标记时,需要有一个动态数量的变量。这就是对象和数组的用途。