将TypeScript单行代码转换为PHP的实现疑问
把TypeScript的字符串拼接逻辑转成PHP单行实现
首先先明确你那段TypeScript代码的核心逻辑:
遍历
subclass.Ins数组中的每个In对象,将每个对象的OutId和OutIndex拼接成单个字符串,最后把所有这些字符串累加合并成一个完整的字符串,初始值为空字符串。
用PHP的array_map和array_reduce确实可以实现单行写法,代码如下:
$InContent = array_reduce( array_map(fn($In) => $In->OutId . $In->OutIndex, $subclass->Ins), fn($a, $b) => $a . $b, '' );
代码细节解释:
array_map(fn($In) => $In->OutId . $In->OutIndex, $subclass->Ins):对应TS里的map方法,遍历$subclass->Ins数组(PHP中对象属性用->访问),把每个元素的OutId和OutIndex拼接成字符串,生成一个新的字符串数组。array_reduce(..., fn($a, $b) => $a . $b, ''):对应TS的reduce方法,把上面生成的字符串数组逐个累加拼接,第三个参数''是初始值,和TS代码的最后一个参数保持一致。
如果你的PHP版本低于7.4(不支持箭头函数),可以换成匿名函数写法:
$InContent = array_reduce( array_map(function($In) { return $In->OutId . $In->OutIndex; }, $subclass->Ins), function($a, $b) { return $a . $b; }, '' );
这样就能完全复刻原TypeScript代码的功能啦!
内容的提问来源于stack exchange,提问作者SmartGuyz
相关产品推荐
相关产品推荐

