将多个数组组合成以第一数组项为关键字的对象
combining multiple arrays into an object with first array items as the key
我有以下数组
var category = ['Guitar', 'Bass', 'Amps'];
var platform_a = ['platform-a1','platform-a2','platform-a3'];
var platform_b = ['platform-b1','platform-b2','platform-b3'];
var platform_c = ['platform-c1','platform-c2','platform-c3'];
我想把它们转换成一个json,看起来应该像这个
{
"Guitar":["platform-a1","platform-a2","platform-a3"],
"Bass":["platform-b1","platform-b2","platform-b3"],
"Amp":["platform-c1","platform-c2","platform-c3"]
}
我该怎么做?我必须在纯javascript 中执行此操作
让我们为您的案例介绍三种不同的方法:
第一个
如果您只想用数据创建json对象,请尝试:
http://jsfiddle.net/csdtesting/tap2xom9/
var platform_a = ['platform-a1', 'platform-a2', 'platform-a3'];
var platform_b = ['platform-b1', 'platform-b2', 'platform-b3'];
var platform_c = ['platform-c1', 'platform-c2', 'platform-c3'];
var category = ['Guitar', 'Bass', 'Amps'];
var obj = {
Guitar: platform_a,
Bass: platform_b,
Amps: platform_c
};
document.write(JSON.stringify(obj));
第二次
如果你想动态创建它,可以这样做:
http://jsfiddle.net/csdtesting/tap2xom9/
var category = ['Guitar', 'Bass', 'Amps'];
var platform_a = ['platform-a1', 'platform-a2', 'platform-a3'];
var platform_b = ['platform-b1', 'platform-b2', 'platform-b3'];
var platform_c = ['platform-c1', 'platform-c2', 'platform-c3'];
var FinalObject = {};
FinalObject[category[0]] = platform_a;
FinalObject[category[1]] = platform_b;
FinalObject[category[2]] = platform_c;
document.write(JSON.stringify(FinalObject));
最后
如果你想更动态,那么试试这个:
http://jsfiddle.net/csdtesting/kqwz72os/
var FinalObject = {};
var category = ['Guitar', 'Bass', 'Amps'];
var platforms = {
platform_a: ['platform-a1', 'platform-a2', 'platform-a3'],
platform_b: ['platform-b1', 'platform-b2', 'platform-b3'],
platform_c: ['platform-c1', 'platform-c2', 'platform-c3']
};
for (var i = 0; i < category.length; i++) {
FinalObject[category[i]] = platforms[Object.keys(platforms)[i]];
}
document.write(JSON.stringify(FinalObject));
希望这能有所帮助!
这里没有合理的快捷方式。你只需要手动操作:
var jsonString = JSON.stringify({
"Guitar": platform_a,
"Base": platform_b,
"Amp": platform_c
});
相关文章:
- javascript搜索数组,返回找到的关键字
- 为新对象添加函数,将对象添加到数组中.理解困难'这'关键字
- 如果在数组中发现重复,则必须通过纯javascript添加带关键字的索引
- jQuery ajax请求,将索引数组作为关键字字符串
- 从对象数组中提取关键字和值
- Javascript - 使用变量 RegExp 匹配数据数组中的多个关键字
- 将 JavaScript new 关键字与可变长度参数数组一起使用
- 测试数组中所有关键字的文本区域
- 通过查找关键字将Javascript字符串拆分为字符串数组
- 获取数组中的顶部关键字
- javascript数组关键字名称限制
- 迭代json对象数组,并使用ProtypeJS根据关键字对其进行排序
- 将多个数组组合成以第一数组项为关键字的对象
- 当在数组中找到关键字时,在对象中循环以提取属性名称的问题
- 在PHP中使用关键字筛选数组
- 如何使用关键字过滤JSON数组对象
- 如何过滤数组的对象从关键字在javascript
- 如何使用jQuery获取数组关键字名称
- JavaScript RegEx:如果关键字字符串的任何部分匹配数组中的值,则返回true
- 使用"in"迭代Javascript数组关键字