2016-06-20 1 views
0

У меня есть объект, как этоКак создать один объект из нескольких количества объектов с помощью JavaScript или Lodash

var Data= { 
    "firstname": { 
    "excelcolumnName": "firstName", 
    "dbcolumn": "one", 
    "testinfo": "basictest" 
    }, 
    "labname": { 
    "excelcolumnName": "LabName", 
    "dbcolumn": "two", 
    "testinfo": "basictest" 
    }, 
    "percentCbd": { 
    "excelcolumnName": "Percent CBD", 
    "dbcolumn": "three", 
    "testinfo": "Final Test" 
    } 

    "percentgeneral": { 
    "excelcolumnName": "Percent General", 
    "dbcolumn": "four", 
    "testinfo": "Final Test" 
    } 
} 

я хочу фильтр и создать новый объект, который содержит testinfo: «basictest» выход одного объекта должно быть так.

{ 
"one":"basictest", 
"two":"basictest" 
} 

может любое тело помочь мне в этом.

ответ

0
Var array = []; 

for(var i=0;i<Object.keys(Data).length;i++){ 
    if(data[i].testinfo === 'basictest'){ 
    array.push(data[i]); 
    } 
} 

массив будет иметь все объекты с testinfo = 'basictest'

1

Из того, что я понимаю, что вы хотите, один объект, содержащий dbcolumn: testinfo отображений

Check this JSBin

var Data2={}; 

_.map(Data,(obj)=>{ 
    if(obj.testinfo==='basictest'){ 
    var newObj={}; 
    newObj[obj.dbcolumn]=obj.testinfo; 
    return _.assign(Data2,newObj); 
    } 
}); 
console.log(Data2); 

Функция карты 'Карты' каждый объект во что-то другое. Назначение объединяет эти пары ключ-значение. Строка newObj [obj.dbcolumn] преобразует значение из «dbcolumn: value» в ключ для нового объекта.

+0

WIth lodash, вы можете использовать функцию цепочки массивов - не уверен, если он работает на объектах, как ваши данные - Проверить эту ссылку https://blog.mariusschulz.com/2015/05/14/implicit-function-chains-in-lodash – user6387024

+0

С привязкой вы могли бы сделать _ (Data) .filter (функция для фильтрации только базовых тестов) .map (чтобы получить только сопоставление dbcolumn: testinfo) – user6387024

0

Попробуйте

const Data = { 
    "firstname": { 
    "excelcolumnName": "firstName", 
    "dbcolumn": "one", 
    "testinfo": "basictest" 
    }, 
    "labname": { 
    "excelcolumnName": "LabName", 
    "dbcolumn": "two", 
    "testinfo": "basictest" 
    }, 
    "percentCbd": { 
    "excelcolumnName": "Percent CBD", 
    "dbcolumn": "three", 
    "testinfo": "Final Test" 
    }, 
    "percentgeneral": { 
    "excelcolumnName": "Percent General", 
    "dbcolumn": "four", 
    "testinfo": "Final Test" 
    } 
} 

const result = {} // contain result 

for (var i in Data) { 
const item = Data[i] 
result[item.dbcolumn] = item.testinfo // add a new object item 
} 

console.log(result) // print {one: "basictest", two: "basictest", three: "Final Test", four: "Final Test"} 

 Смежные вопросы

  • Нет связанных вопросов^_^