【问题标题】:Single array to multiple array javascript单个数组到多个数组javascript
【发布时间】:2018-06-28 19:45:17
【问题描述】:

y 有一个数组关联,并希望保存多个数组,其中只有一个键值,如下所示:

[
  key1: value1,
  key2: value2,
  key3: value3
]

[ key1: value1 ]
[ key2: value2 ]
[ key3: value3 ]

【问题讨论】:

  • 首先,that 不是一个有效的对象,其次,这些多个数组应该分配给什么? ... 像这样? var a = [], b = [], c = []
  • 您应该将解决方案放在答案中,而不是在问题中。

标签: javascript arrays key associative


【解决方案1】:

Associative Arrays are the same as Objects 在 JavaScript 中,我认识的大多数人都将它们称为“对象”,而不是“关联数组”(在 JavaScript 的上下文中)。 此答案还将关联数组称为对象。

您问题中的所有对象均无效。
您需要将对象文字包装在花括号中,而不是方括号中(方括号用于数组文字)。 您需要将它们分配给一个变量(或将它们作为参数传递,或者在它们前面有一个 return 关键字,等等)。

我假设您要转换为多个对象的对象是您的第一个示例,第二个示例是完成后的样子。 这是您的示例,已重写以符合该假设。

// assign it to a variable
var firstExample = {
  key1: 'value1',   // dunno if value1, 2, or 3 are strings, but stringifying them works for an example
  key2: 'value2',
  key3: 'value3'
};

var secondExample = [   // I assume you want an array of objects, each with a single key/value pair.
    { key1: 'value1' },
    { key2: 'value2' },
    { key3: 'value3' },
];

也就是说,我能想到的完成您正在寻找的最简单的方法是获取对象的键,然后遍历它们并将它们映射到单个对象。

var firstExample = {
  key1: 'value1',
  key2: 'value2',
  key3: 'value3'
};

var secondExample = [
    { key1: 'value1' },
    { key2: 'value2' },
    { key3: 'value3' },
];

// ES6 syntax
const arrayOfObjects = Object.keys(firstExample).map(key => ( { [key]: firstExample[key] } ));

console.log('Array of objects', arrayOfObjects);
console.log('arrayOfObjects is equivalent to secondExample:', JSON.stringify(arrayOfObjects) === JSON.stringify(secondExample));

// ES5 syntax
var es5 = Object.keys(firstExample).map(function (key) {
    var o = {};
    o[key] = firstExample[key];
    return o;
});

console.log('ES5-syntax array of objects', es5);
console.log('es5 is equivalent to secondExample:', JSON.stringify(es5) === JSON.stringify(secondExample));

【讨论】:

    猜你喜欢
    • 2016-05-26
    • 1970-01-01
    • 2018-04-06
    • 2015-12-24
    • 1970-01-01
    • 2020-06-23
    • 1970-01-01
    • 2019-11-02
    • 2018-07-13
    相关资源
    最近更新 更多