javascript - 将字符串切片并将每个片段存储在新数组中

标签 javascript arrays string

需要帮助。 我有像 ["wt=WLw","V5=9jCs","7W=71X","rZ=HRP9"] 这样的字符串(无限数量的对)

我需要为整个字符串(或更简单的 wT)创建一个数组,其中包含像 wT (作为索引)和 WLw 作为值的数组> 作为索引 0,WLw 作为索引 1 等等) 我正在尝试用 JavaScript 来完成此任务,但我就是不知道如何完成此任务。

非常感谢您的帮助!!

最佳答案

你不能将字符串作为数组中的索引,你想要的是一个对象。

您需要做的就是循环数组,将每个值拆分为 2 个项目(键和值),然后将它们添加到一个对象中。

示例:

// output is an object
var output = {};
var source = ["wt=WLw","V5=9jCs","7W=71X","rZ=HRP9"];
for (var index = 0; index < source.length; index++) {
    var kvpair = source[index].split("=");
    output[kvpair[0]] = kvpair[1];
}

如果您想要一个数组数组,那么其过程大致相同,只需将每一对推送到输出对象

// output is a multidimensional array
var output = [];
var source = ["wt=WLw","V5=9jCs","7W=71X","rZ=HRP9"];
for (var index = 0; index < source.length; index++) {
    output.push(source[index].split("="));
}

更新如果您的源实际上是字符串而不是数组,那么您将需要进行更多的拆分才能使其正常工作

var output = {};
var sourceText = "[\"wt=WLw\",\"V5=9jCs\",\"7W=71X\",\"rZ=HRP9\"]";
// i have escaped the quotes in the above line purely to make my example work!
var source = sourceText.replace(/[\[\]]/g,"").split(",");
for (var index = 0; index < source.length; index++) {
    var kvpair = source[index].split("=");
    output[kvpair[0]] = kvpair[1];
}

更新2

如果您想要的输出是数组的数组而不是包含键值对的对象,那么您将需要执行类似 @limelights 答案的操作。

具有键值对的对象:var myObject = { "key1": "value1", "key2": "value2"};

使用上面的代码,您可以像这样 myObject["key1"]myObject.key1

访问“value1”

数组的数组:var myArray = [ [ "key1", "value1"] ,[ "key2", "value2"] ];

使用此代码,您无法通过“key”访问数据(无需首先循环遍历整个数据来找到它)。在这种形式中,“key1”和“value1”实际上都是值。

要获取“value1”,您可以执行myArray[0][1],或者您可以使用中间数组来访问该对:

var pair = myArray[0];
> pair == ["key1", "value1"]
> pair[0] == "key1"
> pair[1] == "value1"

您可以对两种类型的结果使用 for every 循环

// array of arrays
var data = [ [ "hello", "world"], ["goodbye", "world"]];

data.forEach(function(item) {
    console.log(item[0]+" "+item[1]);
});
> Hello World
> Goodbye World

// object (this one might not work very well though)
var data = { "hello": "world", "goodbye": "world" };

Object.keys(data).forEach(function(key) {
    console.log(key+" "+data[key]);
});
> Hello World
> Goodbye World

关于javascript - 将字符串切片并将每个片段存储在新数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15949444/

相关文章:

javascript - Angular Js 和 google api client.js (gapi)

javascript - 函数在 jQuery 中运行多次

Java - 2D 数组操作正在影响索引的逆

javascript - 如何找到数组中出现偶数次的整数?

python - Python 中是否有一种标准方法可以将字符串与任意可接受值列表进行模糊匹配?

javascript - 如何根据输入值更改JS中的背景图像?

javascript - JSONP 发送参数正在被闭包编译器修改

javascript - 请解释这个javascript结构

c - 在 C 中解读字符串

java - 如何以与 bash 相同的方式解析命令行序列?