我對編程還是很陌生,并且一直在應對挑戰。其中之一是創建一個函式,它將:
-> 將奇數陣列的中間值更改為字串“Hi” -> 按原樣回傳偶數陣列(無更改)
我已經成功地找到了陣列中的中間元素(也為偶數陣列設定了條件)。
但我正在努力弄清楚如何用字串實際替換元素并回傳陣列。
例如 [1, 2, 3, 4, 5] -> [1, 2, 'hi", 4, 5]
如果有人能指出我正確的方向,我將不勝感激。謝謝大家的幫助
function hiInTheMiddle(arry) {
if(arry.length % 2 === 0) {
return arry
}
let middle = arry[Math.floor((arry.length - 1) / 2)];
}
uj5u.com熱心網友回復:
您可以通過找到index中間元素然后將hi字串分配給該索引來簡單地實作此要求。
現場演示:
function hiInTheMiddle(arry) {
if(arry.length % 2 === 0) {
return arry;
}
arry[Math.floor((arry.length - 1) / 2)] = 'hi';
return arry;
}
const res = hiInTheMiddle([1, 2, 3, 4, 5]);
console.log(res);
uj5u.com熱心網友回復:
您可以簡單地更改中間元素arr[middle] = 'Hi'
所以你需要的代碼應該是這樣的:
let evenArr = [1, 2, 3, 4];
let oddArr = [1, 2, 3, 4, 5, 6, 7];
// defined test arrays
function hiInTheMiddle(arr) {
if (arr.length % 2 === 0) {
return arr;
}
arr[arr.length / 2 - 0.5] = 'Hi';
return arr;
}
console.log(hiInTheMiddle(evenArr), hiInTheMiddle(oddArr));
// test the code
uj5u.com熱心網友回復:
細節在例子中注釋
const odd = [1, 2, 3, 4, 5];
const even = [1, 2, 3, 4];
/**
* If array has an odd numbered .length, replace the middle item of array
* with a given string.
* @param {Array} arr - An array of unknown values
* @param {String} str - A string to insert into the array.
* @return {Array} - If undefined it returns @default as "|".
* If arr .length is even, the array is returned untouched.
*/
const mid = (arr, str = "|") => {
// If arr is odd...
if (arr.length % 2 === 1) {
// replace the middle item with the given string
arr.splice((arr.length / 2), 1, str);
}
return arr;
}
console.log(JSON.stringify(mid(odd)));
console.log(JSON.stringify(mid(even)))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/514918.html
標籤:javascript数组
