将字符串数组转换为javascript对象

时间:2017-10-02 02:08:25

标签: javascript

我有普通的字符串数组,我想将它转换为JavaScript对象,基本上是为值添加一个键。

我的阵列

var myArr = ["a", "b", "c"]

我想要它

var myObj = [{"letter":"a", "letter":"b", "letter":"c"}]

让我知道可能性。 谢谢

2 个答案:

答案 0 :(得分:1)

这就是我实现的方法。你甚至可以通过甚至不使用var obj来减少冗长,但为了说明的目的,我写了如下:

function strings_to_object(array) {

  // Initialize new empty array
  var objects = [];


  // Loop through the array
  for (var i = 0; i < array.length; i++) {

    // Create the object in the format you want
    var obj = {"letter" : array[i]};

    // Add it to the array
    objects.push(obj);
  }

  // Return the new array
  return objects;
}

输出:

[ { letter: 'a' }, { letter: 'b' }, { letter: 'c' } ]

我意识到输出略有不同,因为你的输出是一个带有一个对象的单个数组。问题是该对象有几个重复键。就像你的原始数组(大小为3)一样,你的输出数组应该是3号。每个对象都有一个&#34;字母&#34;键。

答案 1 :(得分:1)

不要将每个字母分配给重复的letter键(实际上不存在或没有意义)。而是通过将每个元素存储在单独的项目中来使用您的数组数组中的插槽,每个插槽都有typevalue

[
    {
        type: "letter",
        value: "a"
    },
    {
        type: "letter",
        value: "b"
    },
    {
        type: "letter",
        value: "c"
    }
]

或者,正如Obsidian Age所评论的那样,一个字母数组(以及其他类型字符的其他数组):

var letters = ['a', 'b', 'c'];

没有一种正确的方法来存储这些数据。