The interview process involved the following stages:
In general, I spoke with three individuals and felt they were generally arrogant. There might be a pattern.
I decided to stop the interview from my side, even though I was asked to proceed to a final round.
Serialize IDs from a nested tree of items
javascript const data = [ { id: 1, items: [{ id: 4, items: [{id: 5}, {id: 6, items: [{id: 8}]}]}]}, { id: 2, items: [{ id: 7}]}, { id: 3 }, { id: 9, items: [{id: 10, items: [{id: 12}]}, {id: 11}] } ];
// Should return [1, 2, 3, 9, 4, 7, 10, 11, 5, 6, 12, 8]
Outer join two arrays
javascript const a = [ { id: 3, name: 'Matt' }, { id: 4, name: 'Greg' }, { id: 1, name: 'David' }, { id: 2, name: 'John' } ] const b = [ { id: 7, position: 'Outlier' }, { id: 2, position: 'Leader' }, { id: 3, position: 'Captain' }, { id: 6, position: 'Rogue' }, { id: 4, position: 'VP' }, { id: 5, position: 'Pawn'} ]
Should create the following joined array:
javascript [ { id: 1, name: 'David', position: null }, { id: 2, name: 'John', position: 'Leader' }, { id: 3, name: 'Matt', position: 'Captain' }, { id: 4, name: 'Greg', position: 'VP' }, { id: 5, position: 'Pawn', name: null }, { id: 6, position: 'Rogue', name: null }, { id: 7, position: 'Outlier', name: null } ]
Give me the output console for the following piece of code:
javascript var foo = 'foo'; function bar() { setTimeout(() => { console.log(foo); }, 0); console.log(foo); console.log(bar()); console.log(foo); var foo = 'bar'; function bar() { foo = 'bartwo'; } console.log(foo); } bar(); console.log(foo);
Console Output Explanation:
console.log(foo); (inside setTimeout): foo will be 'bar' because setTimeout callbacks execute after the current execution context finishes, and by then foo has been reassigned to 'bar'.console.log(foo); (immediately within bar): foo will be 'foo' as it's the initial value before any reassignments within bar.console.log(bar());: This will execute the inner bar function. The inner bar sets foo to 'bartwo'. The bar() call itself returns null. So, this line logs null.console.log(foo); (after inner bar call): foo will be 'bartwo' because the inner bar function modified it.console.log(foo); (at the end of bar): foo will be 'bar' because the var foo = 'bar' declaration inside bar's scope (due to hoisting) takes precedence over the foo = 'bartwo' assignment before the function redeclaration.console.log(foo); (global scope, after bar()): foo will be 'foo' as the global foo was not affected by the scope of the bar function.Corrected Console Output:
foo undefined bartwo bar foo
The following metrics were computed from 2 interview experiences for the Apple Senior Front End Developer role in United States.
Apple's interview process for their Senior Front End Developer roles in the United States is extremely selective, failing the vast majority of engineers.
Candidates reported having very negative feelings for Apple's Senior Front End Developer interview process in United States.