javascript - 基于数组创建变量

标签 javascript arrays

我有以下数组和一个获取 key 的循环 ( https://jsfiddle.net/ytm04L53/ )

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];
    alert(feed.match(/\d+$/));
}

array result

数组将始终包含不同数量的键,我想要做的是将这些键用作变量并分配 : 分号后面的值作为其值,或者只是创建一个新集合变量并将在这些键上找到的值分配给它们。

我怎样才能实现这个目标?这样我就可以进行某种比较

如果(test_user > 5000){做某事}

更新 感谢您的回答,我如何创建一组变量并将数组值分配给它们?例如如下所示。

valCount(feeds.split(","));

    function valCount(t) {
     if(t[0].match(/test_user_.*/))
      var testUser = t[0].match(/\d+$/);
     }

显然,有时数组中可能只有 1 个键,有时有 2 个或 3 个键,因此 t[0] 并不总是 test_user_

我需要以某种方式将数组传递给函数并执行某种匹配,如果数组键以 test_user_ 开头,则获取该值并将其分配给定义变量。

感谢大家的帮助!

最佳答案

您无法(合理地)在运行时创建具有动态名称的变量。 (这技术上是可能的。)

相反,您可以创建对象属性:

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_user_201508_20150826080829.txt"] 的值为“12345”

实例:

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(":");
    obj[parts[0]] = parts[1];
});
snippet.log(obj["test_user_201508_20150826080829.txt"]);
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>

关于javascript - 基于数组创建变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32232008/

相关文章:

c - 从 C 中的数组中删除零项

java - Java 数组 - 尝试删除用户输入要求

javascript - jQuery 通过多个行情轮换

javascript - Jquery 文件树 - 如何在文件夹单击时返回文件夹名称

带有直方图的 C# 等级数组

javascript - 无法使用 json 对象通过 Javascript 显示动态表

java - Java中的查找表

javascript - 如何使用poedit从js文件生成po文件

javascript - 在 ng-click 上使用数组过滤多个 Angularjs

javascript - 获取对象数组内对象属性的值