我有以下数组和一个获取 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+$/));
}
数组将始终包含不同数量的键,我想要做的是将这些键用作变量并分配 :
分号后面的值作为其值,或者只是创建一个新集合变量并将在这些键上找到的值分配给它们。
我怎样才能实现这个目标?这样我就可以进行某种比较
如果(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/