Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于数组创建变量_Javascript_Arrays - Fatal编程技术网

Javascript 基于数组创建变量

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",

我有以下数组和一个获取键的循环()

显然,有时数组中可能只有一个键,有时是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","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
变量,但当您标记时,需要有一个动态数量的变量。这就是对象和数组的用途。