我有多維陣列。我希望它是一個單一的陣列我也在 php 代碼中找到了解決方案。php代碼如下
$array = [
'pg1' => '23',
'pg_123'=> '342443',
'pg_1_2' => '25',
'pg-123' => 'test',
'pg321' => 'grgerhgre',
];
function makeFlatParamsArray($arrParams, $parent_name = '')
{
$arrFlatParams = [];
$i = 0;
foreach ($arrParams as $key => $val) {
$i ;
$name = $parent_name . $key . sprintf('d', $i);
if (is_array($val)) {
$arrFlatParams = array_merge($arrFlatParams, makeFlatParamsArray($val, $name));
continue;
}
$arrFlatParams = array($name => (string)$val);
}
return $arrFlatParams;
}
$newArr = makeFlatParamsArray($array);
echo $newArr;
輸出:pg1001 23;pg_123002 342443;pg_1_2003 25;pg-123004 測驗;pg321005 grgerhgre;
如何將上面的 php 代碼轉換為 javascript。你能幫助我嗎?
uj5u.com熱心網友回復:
這應該給你預期的結果:
const padZeros = (num, places) => String(num).padStart(places, '0');
inputArray = {
pg1: '23',
pg_123: '342443',
pg_1_2: '25',
'pg-123': 'test',
pg321: 'grgerhgre',
};
var resultArray = [];
var index = 0;
for (var key in inputArray) {
resultArray.push(key padZeros( index, 3) ' ' inputArray[key]);
}
console.log('result', resultArray) // OK
或者,更緊湊的版本,使用Object.keys和reduce:
....................................................................
var resultArray = Object.keys(inputArray).reduce((acc, key, i) => {
acc.push(key padZeros(i 1, 3) ' ' inputArray[key]);
return acc;
}, []);
console.log('result', resultArray) // OK
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/361346.html
標籤:javascript php
