失望
現在有乙個陣列存放字串資料:
const items = ['item1', 'item2', 'item3', 'item4', 'item5']
有另外乙個陣列存放一組物件:
const sections = [
, ]
它每個物件表示的是會往原來的陣列的index
座標插入content
資料(index
不會重複):
0 1 2 3 4
item1 itme2 item3 item4 item5
^ ^
| |
section1 section2
最後結果是:['section1', 'item1', 'item2', 'section2', 'item3', 'item4', 'item5']
請你完成injectsections
函式,可以達到上述的功能
injectsections(
['item1', 'item2', 'item3', 'item4', 'item5'],
[ ,
]) // => ['section1', 'item1', 'item2', 'section2', 'item3', 'item4', 'item5']
我他媽就是個傻子。
上來直接往裡插入,遍歷sections
然後插入,難道就不知道插入完了之後原來的items
陣列順序就變了?
二逼乙個
兩個思路
第乙個思路,從前往後插入的時候,後面的下標會發生變化,那就反過來插入,從後往前插入就不會受到影響了
所以,現在的關鍵點就是將sections
按照index
排序
眼熟嗎
sections.sort((a, b) => b.index - a.index)
然後就沒什麼難度了
const injectsections = (items, sections) =>
const temp = [...items];
[...sections].sort((a, b) = > (b.index - a.index)).foreach(section = > );
return temp
};
思路2
第二個思路,直接向陣列中插入資料會影響下標,那麼我把陣列中的每一項都變成陣列,在想內層陣列插入資料就沒問題了,最後在展平就行了
現在的關鍵的就是展平二維陣列
學到了乙個方法,拼接陣列cancat
的用法
.concat(arr1, arr2)
我們要展平的資料是:
const a = [[a], [b]]
直接呼叫不行,可以使用下面這種形式,將陣列傳進去:
或者用解構的形式傳入引數:
.concat(...temp)
好了,接下來又沒難度了
const injectsections2 = (items, sections) => );
return .concat(...temp)
};
習題練習07
實現 int sqrt int x 函式。計算並返回 x 的平方根,其中 x 是非負整數。由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。示例 1 輸入 4 輸出 2 示例 2 輸入 8 輸出 2 說明 8 的平方根是 2.82842 由於返回型別是整數,小數部分將被捨去。param x...
寒假練習 07
斷斷續續終於刷完了計算幾何專題,感覺太麻煩,小錯誤不斷,尤其是精度問題。還有輸出問題,有時候printf比cout要方便。給出正方形的一組對角座標,求另外兩個座標,用三角函式推到公式。不妨設兩點為a x1,y1 c x2,y2 則中點為g x1 x2 2,y1 y2 2 對角線長度為l sqrt x...
前端學習日記07
常用表單標籤 1 form 表單標籤 表單標籤定義乙個包含表單元素的區域 用於收集使用者輸入的不同型別的資料 常見的表單型別 文字域 下拉列表 單選框 核取方塊 2 input標籤 表單元素就是指不同型別的input元素,input標籤根據不同的type屬性,有很多形態。文字輸入 定義文字輸入的單行...