我有以下对象数组:
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<div class="row" id="meta-search">
<div class="col-sm-6">
<h5> IDs </h5>
<form action="" method="post">
<div class="row">
<div class="col mb-3">
<label>ID1</label>
<input type="number" class="form-control">
</div>
<div class="col mb-3">
<label>ID2</label>
<input type="number" class="form-control">
</div>
<div class="col mb-3">
<label>ID3</label>
<input type="number" class="form-control">
</div>
</div>
<button class="btn btn-primary btn-sm" name="submit1" type="submit">Search Record</button>
</form>
</div>
</div>
我想获得以下字符串输出:
const pagesByBook = [
{bookName: "An old tome", pages: 123},
{bookName: "Really ancient stuff", pages: 432},
{bookName: "Yup, another old book", pages: 218}
]
如何使用ES6方法(例如map)在几行中使用此方法?
答案 0 :(得分:1)
在我看来,这是使用ES6解构的简单map
。假设数组中的最后2个元素是常量(old
,null
):
const data = [ {bookName: "An old tome", pages: 123}, {bookName: "Really ancient stuff", pages: 432}, {bookName: "Yup, another old book", pages: 218} ]
const result = data.map(({bookName, pages}) => [bookName, pages, 'old', null])
console.log(JSON.stringify(result))
如果需要此字符串表示形式,则可以将其更改为:
const data = [ {bookName: "An old tome", pages: 123}, {bookName: "Really ancient stuff", pages: 432}, {bookName: "Yup, another old book", pages: 218} ]
const result = data.map(({bookName, pages}) => JSON.stringify([bookName, pages, 'old', null]))
console.log(result.join(','))
答案 1 :(得分:0)
使用JSON.stringify,Array#map,Object.values,Array#slice和Array#concat来获得所需的结果。
const pagesByBook = [{
bookName: "An old tome",
pages: 123
},
{
bookName: "Really ancient stuff",
pages: 432
},
{
bookName: "Yup, another old book",
pages: 218
}
]
const res = JSON.stringify(pagesByBook.map(item => Object.values(item).concat("old", null))).slice(1, -1);
console.log(res)