如何拆分对象内的字符串并将它们推入数组? Javascript
How to split strings inside object and push them into array? Javascript
我收到一个对象,每次都收到不同数量的字符串,每次都不同
Object {
key_id: 7,
key1: "String1, String2",
key2: "String1, String2, String3",
key3: "String1, String2",
key4: "String1, String2";
…
}
我想收到
Array = [{key_id: 7, key1: "String1", key1: "String2" ...}]
或
Array = [{key_id: 7, key1: "String1", "String2" ...}]
我需要它来使这个字符串分开,从而使它们分开链接。
我正在使用 JSX/Babel ES6
在 ReactJs 上制作它
使用Object#entries
转换为[键,值]对数组,Array#map
它们:
const data = {
key_id: 7,
key1: "String1, String2",
key2: "String1, String2, String3",
key3: "String1, String2",
key4: "String1, String2"
};
const result = Object.entries(data).map(([key, value]) => ({
[key]: typeof value === 'string' ? value.split(', ') : value
}));
// an array with multiple objects
console.log(result);
// A single object:
console.log(Object.assign({}, ...result));
注意 Object#entries
不是 ES6 的一部分,IE 和 Edge 不支持。
编辑: 更新了代码以将每个 属性 更改为数组元素。
let data = {
key_id: 7,
key1: "String1, String2",
key2: "String1, String2, String3",
key3: "String1, String2",
key4: "String1, String2"
};
Object.keys(data).forEach(function(key) {
data[key] = typeof data[key] === 'string' ? data[key].split(', ') : data[key];
});
console.log(data);
我收到一个对象,每次都收到不同数量的字符串,每次都不同
Object {
key_id: 7,
key1: "String1, String2",
key2: "String1, String2, String3",
key3: "String1, String2",
key4: "String1, String2";
…
}
我想收到
Array = [{key_id: 7, key1: "String1", key1: "String2" ...}]
或
Array = [{key_id: 7, key1: "String1", "String2" ...}]
我需要它来使这个字符串分开,从而使它们分开链接。 我正在使用 JSX/Babel ES6
在 ReactJs 上制作它使用Object#entries
转换为[键,值]对数组,Array#map
它们:
const data = {
key_id: 7,
key1: "String1, String2",
key2: "String1, String2, String3",
key3: "String1, String2",
key4: "String1, String2"
};
const result = Object.entries(data).map(([key, value]) => ({
[key]: typeof value === 'string' ? value.split(', ') : value
}));
// an array with multiple objects
console.log(result);
// A single object:
console.log(Object.assign({}, ...result));
注意 Object#entries
不是 ES6 的一部分,IE 和 Edge 不支持。
编辑: 更新了代码以将每个 属性 更改为数组元素。
let data = {
key_id: 7,
key1: "String1, String2",
key2: "String1, String2, String3",
key3: "String1, String2",
key4: "String1, String2"
};
Object.keys(data).forEach(function(key) {
data[key] = typeof data[key] === 'string' ? data[key].split(', ') : data[key];
});
console.log(data);