我有一个如下所示的API响应:
{
"2019-02-13": {
"costs": 117,
"commission": 271.07
},
"2019-02-14": {
"costs": 123,
"commission": 160.37
},
//etc..
}
Run Code Online (Sandbox Code Playgroud)
我想将此对象用作物料数据表的数据源,但出现此错误:
提供的数据源与数组,Observable或DataSource不匹配
我尝试使用像这样的单元格定义:
//cost
<td mat-cell *matCellDef="let item | keyvalue"> {{item.value.costs}} </td>
//date
<td mat-cell *matCellDef="let item | keyvalue"> {{item.key}} </td>
Run Code Online (Sandbox Code Playgroud)
但这没有用。
我当然可以遍历我的对象并制作一个像这样的数组:
[
{
commission: 100,
costs: 45
date: '2019-02-13'
},
{
commission: 100,
costs: 45
date: '2019-02-13'
}
]
Run Code Online (Sandbox Code Playgroud)
这可能会解决我的问题,但是我不想这样做,因为我觉得这是不必要的。
编辑
我通过将以下代码添加到我的服务呼叫中来修复它:
let data = [];
for (let key in response) {
let value = response[key];
let obj = {date: …Run Code Online (Sandbox Code Playgroud) javascript typescript angular-material angular angular-material-table
我有这样一个数组:
unorderedArr = ['pear', 'apple', 'banana', 'peach', 'pineapple'];
Run Code Online (Sandbox Code Playgroud)
我想基于另一个给定的数组来命令这个数组,如下所示:
order = ['peach', 'apple', 'pineapple']
Run Code Online (Sandbox Code Playgroud)
首选结果是:
orderedArr = ['peach', 'apple', 'pineapple', 'banana', 'pear'];
Run Code Online (Sandbox Code Playgroud)
在什么索引上放置不在order数组中的单词并不重要.不能保证order数组中的单词将在无序数组中
当前代码解决方案
我尝试使用这样的switch语句:
const orderedArr = []
unorderedArr.forEach(word => {
switch (word) {
case 'peach':
orderedArr.push(word);
break;
case 'apple':
orderedArr.push(word);
break;
case 'pineapple':
orderedArr.push(word);
break;
default:
orderedArr.push(word);
break;
}
});
Run Code Online (Sandbox Code Playgroud)
但我发现switch语句不会先检查第一个案例.