[英]Array filter data in javascript
我有使用javascript和lodash的工作數組過濾器。 我想將數組數組轉換為單個數組。 您可以告訴任何人轉換為單個數組。
輸入數據
const inputData = [
[
{ 'Tempe(C)': 12 },
{ 'Tempe(C)': 13 },
{ 'Tempe(C)': 14 },
{ 'Tempe(C)': 15 }
],
[
{ 'Tempe(C)': 22 },
{ 'Tempe(C)': 23 },
{ 'Tempe(C)': 24 },
{ 'Tempe(C)': 25 }
],
[
{ 'Tempe(C)': 32 },
{ 'Tempe(C)': 33 },
{ 'Tempe(C)': 34 },
{ 'Tempe(C)': 35 }
],
];
我想要這種輸出結構
const outputData = [
[12, 13, 14, 15],
[22, 23, 24, 25],
[32, 33, 34, 35],
];
您可以使用Object.values
和map
const inputData = [[{"Tempe(C)":12},{"Tempe(C)":13},{"Tempe(C)":14},{"Tempe(C)":15}],[{"Tempe(C)":22},{"Tempe(C)":23},{"Tempe(C)":24},{"Tempe(C)":25}],[{"Tempe(C)":32},{"Tempe(C)":33},{"Tempe(C)":34},{"Tempe(C)":35}]]; const output = inputData.map(arr => arr.map(a => Object.values(a)[0])) console.log(output)
如果您的瀏覽器支持flat
:
const inputData = [[{"Tempe(C)":12},{"Tempe(C)":13},{"Tempe(C)":14},{"Tempe(C)":15}],[{"Tempe(C)":22},{"Tempe(C)":23},{"Tempe(C)":24},{"Tempe(C)":25}],[{"Tempe(C)":32},{"Tempe(C)":33},{"Tempe(C)":34},{"Tempe(C)":35}]] const output = inputData.map(arr => arr.map(Object.values).flat()) console.log(output)
(這適用於任何鍵。如果鍵始終為Tempe(C)
,則@eol的答案是更好的選擇)
如果Tempe(C)
始終是值的鍵,則可以執行以下操作:
const inputData=[[{"Tempe(C)":12},{"Tempe(C)":13},{"Tempe(C)":14},{"Tempe(C)":15}],[{"Tempe(C)":22},{"Tempe(C)":23},{"Tempe(C)":24},{"Tempe(C)":25}],[{"Tempe(C)":32},{"Tempe(C)":33},{"Tempe(C)":34},{"Tempe(C)":35}]]; const output = inputData.map(arr => arr.map(data => data['Tempe(C)'])); console.log(output)
您好Ragu,這是您如何達到所需結果的方法:
var inputData = [
[
{ 'Tempe(C)': 12 },
{ 'Tempe(C)': 13 },
{ 'Tempe(C)': 14 },
{ 'Tempe(C)': 15 }
],
[
{ 'Tempe(C)': 22 },
{ 'Tempe(C)': 23 },
{ 'Tempe(C)': 24 },
{ 'Tempe(C)': 25 }
],
[
{ 'Tempe(C)': 32 },
{ 'Tempe(C)': 33 },
{ 'Tempe(C)': 34 },
{ 'Tempe(C)': 35 }
],
];
var newstructure = [];
for(var i in inputData){
newstructure[i] = [];
for(var j in inputData[i]){
newstructure[i][j] = inputData[i][j]["Tempe(C)"];
}
}
使用lodash,您可以使用嵌套的_.map()
調用來獲取結果:
const data = [[{"Tempe(C)":12},{"Tempe(C)":13},{"Tempe(C)":14},{"Tempe(C)":15}],[{"Tempe(C)":22},{"Tempe(C)":23},{"Tempe(C)":24},{"Tempe(C)":25}],[{"Tempe(C)":32},{"Tempe(C)":33},{"Tempe(C)":34},{"Tempe(C)":35}]] const result = _.map(data, o => _.map(o, 'Tempe(C)')) console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.js"></script>
和使用lodash / fp的想法相同:
const fn = _.map(_.map('Tempe(C)')) const data = [[{"Tempe(C)":12},{"Tempe(C)":13},{"Tempe(C)":14},{"Tempe(C)":15}],[{"Tempe(C)":22},{"Tempe(C)":23},{"Tempe(C)":24},{"Tempe(C)":25}],[{"Tempe(C)":32},{"Tempe(C)":33},{"Tempe(C)":34},{"Tempe(C)":35}]] const result = fn(data) console.log(result)
<script src='https://cdn.jsdelivr.net/g/lodash@4(lodash.min.js+lodash.fp.min.js)'></script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.