我有這樣的對象JS合併數組值到一個單一的價值
a = {key:'animals',
options: ['dog','cat','penguin']}
我怎麼可以把它簡化爲這樣:
b = ['animals','dogcatpenguin']
我有這樣的對象JS合併數組值到一個單一的價值
a = {key:'animals',
options: ['dog','cat','penguin']}
我怎麼可以把它簡化爲這樣:
b = ['animals','dogcatpenguin']
像這樣
var a = {
key: 'animals',
options: ['dog','cat','penguin']
};
var key, b = [];
for (key in a) {
b.push(Array.isArray(a[key]) ? a[key].join('') : a[key]);
}
console.log(b);
或者你可以使用Object.keys
與.map
var a = {
key: 'animals',
options: ['dog','cat','penguin']
};
var b = Object.keys(a).map(function (key) {
return Array.isArray(a[key]) ? a[key].join('') : a[key];
});
console.log(b);
與計算值,您可以只創建一個新的陣列
var a = {key:'animals',
options: ['dog','cat','penguin']};
var b = [
a.key,
a.options.join('')
];
document.write(JSON.stringify(b));
試試這個
var a = {
key: 'animals',
options: ['dog', 'cat', 'penguin']
}
var result = Object.keys(a).map(function(key){
var item = a[key];
return item instanceof Array ? item.join('') : item;
});
console.log(result);
var a = {
key: 'animals',
options: ['dog','cat','penguin']
};
var idx, b = [];
for (idx in a) { //Iterate through all the items of object a
b.push(Array.isArray(a[key]) ? a[key].join('') : a[key]); //Check if item is array join with (blank) or if not directly push it new array
}
console.log(b);
另一種可能的解決方案。
a = {key:'animals',options: ['dog','cat','penguin']}
var b = new Array();
for(var index in a) {
var attr = a[index].toString().split(",").join("");
b.push(attr);
}
您的密鑰是否一致? –
迭代屬性並將它們的值推送到新數組。但請注意,瀏覽器可能會按不同順序迭代屬性。如果您始終擁有這些屬性,則可以直接訪問它們。你試過什麼了?你卡在哪裏? –
你可以試試'var b = []; b.push(a.key); b.push(a.options.join(''));' –