按下标插入
完成 injectSections (items, sections) 函数
injectSections(
['item1', 'item2', 'item3', 'item4', 'item5'],
[
{ content: 'section1', index: 0 },
{ content: 'section2', index: 2 }
]
) // => ['section1', 'item1', 'item2', 'section2', 'item3', 'item4', 'item5']
sections 每个对象表示的是会往原来的数组 items 的 index 坐标插入 content 数据(index 不会重复):
0 1 2 3 4
item1 itme2 item3 item4 item5
^ ^
| |
section1 section2
最后结果是:['section1', 'item1', 'item2', 'section2', 'item3', 'item4', 'item5']
很简单的一道题
const injectSections = (items, sections) => {
sections.sort(function(a, b){
return a.index - b.index;
});
for( index in sections ){
items.splice( index + sections[index]["index"], 0, sections[index]["content"] );
}
return items;
}
Wrong Answer 的原因居然是
for-in 里的 index 类型为 string …
const injectSections = (items, sections) => {
sections.sort(function(a, b){
return a.index - b.index;
});
for( index in sections ){
// index ==> +index
items.splice( +index + sections[index]["index"], 0, sections[index]["content"] );
}
return items;
}