Javascript返回并映射到对象

Chr*_*ovs 0 javascript dictionary mapreduce object

我有一个对象,我想返回两个值并将它们映射到一个对象.

宾语

Itemlist:[
{name: 'Chicken', searchParam: 'chicken', search: true},
{name: 'table', searchParam: 'table', search: false},
{name: 'books', searchParam: 'books', search: true}]
Run Code Online (Sandbox Code Playgroud)

想从Itemlist searchParam返回并搜索并映射到一个结果将是的对象:

{chicken: true},{table: false},{books: true},
Run Code Online (Sandbox Code Playgroud)

所以回归会是这样的

{ Itemlist[0].searchParam :Itemlist[0].search }
Run Code Online (Sandbox Code Playgroud)

Has*_*mam 6

您可以使用array#map获得包含对象的数组name,并search从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);
Run Code Online (Sandbox Code Playgroud)

ES5代码:

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);
Run Code Online (Sandbox Code Playgroud)

  • @jordiburgos`这需要一个ES6转换器`,不,它没有.大多数现代浏览器现在都是ES6 ..如果你需要针对垃圾浏览器,这是一个不同的问题.ES6,现在应该被视为常态. (2认同)