I've an object that I would like to return two value and map them into 1 object.
Object
Itemlist:[
{name: 'Chicken', searchParam: 'chicken', search: true},
{name: 'table', searchParam: 'table', search: false},
{name: 'books', searchParam: 'books', search: true}]
Would like to return from Itemlist searchParam and search and map to an object that a result would be:
{chicken: true},{table: false},{books: true},
So return would be something like
{ Itemlist[0].searchParam :Itemlist[0].search }
You can use array#map
to get an array of object which contains name
and search
value from each object of itemlist.
var itemlist = [{name: 'Chicken', searchParam: 'chicken', search: true},{name: 'table', searchParam: 'table', search: false},{name: 'books', searchParam: 'books', search: true}]; var result = itemlist.map(({searchParam, search}) => ({[searchParam]: search})); console.log(result);
ES5 Code :
var itemlist = [{name: 'Chicken', searchParam: 'chicken', search: true},{name: 'table', searchParam: 'table', search: false},{name: 'books', searchParam: 'books', search: true}]; var result = itemlist.map(function(item) { var obj = {}; obj[item.searchParam] = item.search; return obj; }); console.log(result);
You could do
let arr = [ {name: 'Chicken', searchParam: 'chicken', search: true}, {name: 'table', searchParam: 'table', search: false}, {name: 'books', searchParam: 'books', search: true}]; let result = arr.reduce((a, b) => { let prop = b.searchParam; a[prop] = b.search; return a; }, {}); console.log(result);
You can create a new object, then assign the properties with the [] syntax
var result = {};
result[Itemlist[0].searchParam] = Itemlist[0].search;
return result;
var itemlist = [{ name: 'Chicken', searchParam: 'chicken', search: true }, { name: 'table', searchParam: 'table', search: false }, { name: 'books', searchParam: 'books', search: true }]; var list = itemlist.map(function(item){ return {[item['name']] : item.search} }); console.log(list);
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.