2016-02-12 43 views

回答

2

我假设你要创建这个数据结构(数组,而不是哈希):

[{ “ID”: “3”, “名”: “循环和心血管”},{ “ID”:“ 7“,”name“:”Respiratory“}]

在这种情况下,您可以使用lodash是这样的:

var _ = require('lodash'); 

var a1 = ['3', '7' ]; 
var a2 = [ 'Circulatory and Cardiovascular', 'Respiratory' ]; 

var obj = _.merge(_.map(a1, function (o) { return { id : o } }), _.map(a2, function (o) { return { name : o } })) 

console.log(obj); 
+0

按预期工作。谢谢@波拉夫 – Shanthi

1

我很抱歉,这是输出数组,但它更容易。 你可以这样做

var idArray = ['3', '7' ]; 
var nameArray = [ 'Circulatory and Cardiovascular', 'Respiratory' ]; 
var newArray = []; 

for (var i = 0; i < idArray.length; i++) { 
    newArray.push({"id": idArray[i], "name": nameArray[i]}); 
} 

输出:

[ { id: '3', name: 'Circulatory and Cardiovascular' }, 
    { id: '7', name: 'Respiratory' } ] 

我不知道这是一个好主意,但您可以将新的数组转换成一个对象像这样

var newObject = newArray.reduce(function(o, v, i) { 
    o[i] = v; 
    return o; 
}, {}); 

产量:

{ '0': { id: '3', name: 'Circulatory and Cardiovascular' }, 
    '1': { id: '7', name: 'Respiratory' } } 

或者另一种方式:

Object.setPrototypeOf(newArray, Object.prototype); // Now it's an object 

输出:

Object [ 
    { id: '3', name: 'Circulatory and Cardiovascular' }, 
    { id: '7', name: 'Respiratory' } ] 

希望这有助于!

相关问题