在一次采访中,我被要求将两个多维数组处理成一个对象,其格式类似于:
{
'sally': {
id: 1,
metrics: {
sales: 6000,
missed: 0
}
},
'bob': {
id: 2,
metrics: {
sales: 1000,
missed: 0
}
},..
}
然而,我无法理解.我try 过嵌套for循环,但问题是我担心执行时间.根据采访者的说法,它的执行时间应该是O(n)
,如果我正确理解大O,嵌套for循环的执行时间应该是O(n^2)
左右.以下是我目前掌握的代码:
// returns a dictionary
let testIAteShitOn = (requested_user = false, requested_metric = false) => {
// is the array always organized the same?
let users = [
[1, "Sally"],
[2, "Bob"],
[3, "George"],
];
// same here, is this always organized the same?
// are there only ever 2 metrics?
let metrics = [
[1, "sales", 5000],
[1, "sales", 1000],
[3, "missed", 1000],
[2, "sales", 1000],
];
for (let i = users.length - 1; i >= 0; i--) {
let id = users[i][0];
let data = findDiamond(id, metrics);
}
return obj;
}
let findDiamond = (id, array) => {
return array.filter((item) => item[0] == id);
}
如果您能在这方面提供任何帮助,并就在哪里以及如何最好地学习算法、数据 struct 和大O提出建议,我将不胜感激.