【问题标题】:Javascript Extract Specific ID value from Array to another ArrayJavascript从数组中提取特定ID值到另一个数组
【发布时间】:2017-10-16 08:14:18
【问题描述】:

我在脚本上有这样的结果数组:

var myurlsave = [{"url_field":"yahoo","enabled":true},{"url_field":"google","enabled":true},{"url_field":"bing","enabled":true}];

我想把它提取成这样:

var myurlname = ["yahoo", "google", "bing"];

我认为这对你来说看起来很容易,但我很难做到这一点。谢谢你的帮助

【问题讨论】:

  • Java 不是 Javascript。注意你的标签!

标签: javascript jquery arrays local-storage


【解决方案1】:
var arr = myurlsave.map(function(a) {
    return a.url_field;
});

【讨论】:

  • 最佳快捷方式答案。谢谢你。但我在 chrome 扩展上有问题。如果我使用 var myurlsave = localStorage.result; 则没有结果;来自 options.js
  • @Will Reese 实际上[{"url_field":"yahoo","enabled":true},{"url_field":"google","enabled":true},{"url_field":"bing","enabled":true}] 的值是localStorage.result 的结果,如果我使用var myurlsave = localStorage.resultvar arr 将没有输出
【解决方案2】:

学习函数式编程并查看map 函数。

您基本上想要做的是对数组中的每个元素应用转换。这里的转换并不是要“改变”数组中的元素,而是对它做一些函数,得到一个新的值。

在这种情况下,执行所需转换的函数是:

function extract_url(object) {
    return object.url_field
}

现在,您想将其应用于每个元素并获得一个新数组:

var newArray = originalArray.map(extract_url)

如果你不懂函数式编程,一个更简单的方法是一个简单的循环:

var newArray = []
for(var i = 0; i < originalArray.length; i++) {
     var item = originalArray[i];
     var newItem = extract_url(item)
     newArray.push(newItem)
}

【讨论】:

    猜你喜欢
    • 2012-05-06
    • 1970-01-01
    • 2020-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-20
    • 2023-01-30
    相关资源
    最近更新 更多