我在節點中有2個數組。如何將2個數組連接到節點中的單個json /數組中
['3', '7' ]
[ 'Circulatory and Cardiovascular', 'Respiratory' ]
我想產生如下結果。
{{ 「ID」: 「3」, 「名稱」: 「循環和心血管」},{ 「ID」: 「7」, 「名稱」: 「呼吸」}}
我在節點中有2個數組。如何將2個數組連接到節點中的單個json /數組中
['3', '7' ]
[ 'Circulatory and Cardiovascular', 'Respiratory' ]
我想產生如下結果。
{{ 「ID」: 「3」, 「名稱」: 「循環和心血管」},{ 「ID」: 「7」, 「名稱」: 「呼吸」}}
我假設你要創建這個數據結構(數組,而不是哈希):
[{ 「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);
我很抱歉,這是輸出數組,但它更容易。 你可以這樣做:
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' } ]
希望這有助於!
按預期工作。謝謝@波拉夫 – Shanthi