为了账号安全,请及时绑定邮箱和手机立即绑定

当自定义 Javascript 数组是数组中字符串值的组件时,从该数组中提取值

当自定义 Javascript 数组是数组中字符串值的组件时,从该数组中提取值

翻过高山走不出你 2022-08-04 18:01:20
我希望从这个自定义javascript数组中提取值“adult”和“2ndclass”,每个值都有单独的javascript变量。有人对如何做到这一点有任何想法吗?在以下情况下,有2种产品添加到购物车,但我希望能够灵活地始终获取添加到购物车的每个产品的任何现有值,而不管添加的数量如何。这可能吗?[  'pass/DE-NO-RS-BE-FI-PT-BG-DK-LT-LU-HR-LV-FR-HU-SE-SI-ME-SK-GB-IE-MK-EE-CH-GR-IT-ES-AT-CZ-PL-RO-NL-TR-BA/**adult/2ndclass**',  'pass/DE-NO-RS-BE-FI-PT-BG-DK-LT-LU-HR-LV-FR-HU-SE-SI-ME-SK-GB-IE-MK-EE-CH-GR-IT-ES-AT-CZ-PL-RO-NL-TR-BA/**youth/2ndclass**']提前感谢您的帮助
查看完整描述

3 回答

?
胡说叔叔

TA贡献1804条经验 获得超8个赞

您还可以使用正则表达式来获取这些值。


var arr = [

    "pass/DE-NO-RS-BE-FI-PT-BG-DK-LT-LU-HR-LV-FR-HU-SE-SI-ME-SK-GB-IE-MK-EE-CH-GR-IT-ES-AT-CZ-PL-RO-NL-TR-BA/**adult/2ndclass**",

    "pass/DE-NO-RS-BE-FI-PT-BG-DK-LT-LU-HR-LV-FR-HU-SE-SI-ME-SK-GB-IE-MK-EE-CH-GR-IT-ES-AT-CZ-PL-RO-NL-TR-BA/**youth/2ndclass**"

];


var results = [];


for (var i=0; i < arr.length; i++) {

    var matches = arr[i].match(/\*\*(.+)\/(.+)\*\*/);

    if(matches && matches.length >= 3) 

    results.push([matches[1], matches[2]]);

}


console.log(results);

您可以在此处尝试代码 https://jsfiddle.net/p84eftL7/1/


查看完整回答
反对 回复 2022-08-04
?
慕运维8079593

TA贡献1876条经验 获得超5个赞

首先,我没有完全回答你的问题。但据我所知,您希望这2个值位于数组中字符串的末尾。你可以试试这样的东西


var a, b;

for(s in YOUR_ARRAY){

    [...other, a, b] = YOUR_ARRAY[s].split("/");

    console.log(a, b);

    //Do whatever you want to do with a,b 

}

让我解释一下我自己,首先你需要迭代你的数组,这就是为什么我们在这里有一个“for”循环。然后,对于由“YOUR_ARRAY[s]”给出的每个字符串,您将使用“/”作为分隔符拆分字符串。其余部分非常简单。供您参考,请浏览这些链接 https://www.w3schools.com/js/js_loop_for.asp https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment


更新:正如评论中提到的。如果你想有一个函数,那么


function processValues(arr){

    var a, b;

    for(s in arr){

        [...other, a, b] = arr[s].split("/");

        console.log(a, b);

        //Do whatever you want to do with a,b 

   }

}


processValues(YOUR_ARRAY);


查看完整回答
反对 回复 2022-08-04
?
慕标5832272

TA贡献1966条经验 获得超4个赞

最后,我所做的是以下几点


由于我必须引用回变量的名称,因此我使用以下内容来切片数组,以便可以使用索引号来引用需要检索的值:


function() { 

var myStringArray = {{MY_ARRAY}};

var arrayLength = myStringArray.length;

var output = []

for (var i = 0; i < arrayLength; i++) {

var string = myStringArray[i].split("/",4)

/*pull index 2 and 3 from string and convert to string*/

output.push(string) 

}

return output

}

之后,我必须循环上述信息中正在推送的新数组


由于我只需要从该NEW_ARRAY_2拆分特定索引,因此我使用以下内容来执行此操作


function() {

var products = {{NEW_ARRAY_2}};


var arr = []  

for (var i=0; i < products.length; i++) {

var prod = products[i];

var matches = prod[2];

arr.push(matches);

}

var list = arr.join(', ')  

return list 

}

2种产品的样品退货:“成人,青年”


感谢您的支持


查看完整回答
反对 回复 2022-08-04
  • 3 回答
  • 0 关注
  • 146 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号