0

0

如何用前一个非空键的末尾值填充空数组

心靈之曲

心靈之曲

发布时间:2026-01-08 22:03:32

|

412人浏览过

|

来源于php中文网

原创

如何用前一个非空键的末尾值填充空数组

本文介绍一种遍历对象键值对的方法,当某个键对应的数组为空时,自动将其填充为前一个非空键中数组的最后一个元素,从而实现数据延续性填充。

在实际开发中,我们常遇到结构化数据中存在“占位空数组”的场景,例如后端返回的配置项或分步表单数据中,某些阶段暂无内容但需继承上一阶段的默认状态。此时,手动维护易出错,而通过一次遍历动态填充则既简洁又可靠。

以下是对 myitems 对象的填充逻辑实现:

KAIZAN.ai
KAIZAN.ai

使用AI来改善客户服体验,提高忠诚度

下载
let lastValue = null;

for (const key in myitems) {
  if (Array.isArray(myitems[key]) && myitems[key].length === 0) {
    // 当前值为空数组,且已有有效 lastValue,则填充为 [lastValue]
    if (lastValue !== null) {
      myitems[key] = [lastValue];
    }
  } else if (Array.isArray(myitems[key]) && myitems[key].length > 0) {
    // 更新 lastValue 为当前数组最后一个元素
    lastValue = myitems[key][myitems[key].length - 1];
  }
  // 非数组值(如 undefined、null、字符串等)将被忽略,不更新 lastValue
}

关键点说明:

  • 使用 Array.isArray() 增强健壮性,避免对非数组类型调用 .length 导致异常;
  • lastValue 始终保存最近一次遇到的非空数组的末尾对象,确保语义上的“前一个有效值”;
  • 空数组统一填充为单元素数组 [lastValue],保持结构一致性(与原始数据类型对齐);
  • 若首个键即为空数组(无前置有效值),则保持原空数组不变,不作默认填充,符合安全优先原则。

? 扩展建议:
如需支持深层嵌套或多种默认策略(如 fallback 到全局默认值),可封装为可复用函数,并接受 defaultValue 或 fallbackFn 参数。但对于本例的线性依赖关系,上述循环已足够清晰、高效且易于理解。

相关专题

更多
数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

301

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

222

2025.10.31

length函数用法
length函数用法

length函数用于返回指定字符串的字符数或字节数。可以用于计算字符串的长度,以便在查询和处理字符串数据时进行操作和判断。 需要注意的是length函数计算的是字符串的字符数,而不是字节数。对于多字节字符集,一个字符可能由多个字节组成。因此,length函数在计算字符串长度时会将多字节字符作为一个字符来计算。更多关于length函数的用法,大家可以阅读本专题下面的文章。

918

2023.09.19

Golang gRPC 服务开发与Protobuf实战
Golang gRPC 服务开发与Protobuf实战

本专题系统讲解 Golang 在 gRPC 服务开发中的完整实践,涵盖 Protobuf 定义与代码生成、gRPC 服务端与客户端实现、流式 RPC(Unary/Server/Client/Bidirectional)、错误处理、拦截器、中间件以及与 HTTP/REST 的对接方案。通过实际案例,帮助学习者掌握 使用 Go 构建高性能、强类型、可扩展的 RPC 服务体系,适用于微服务与内部系统通信场景。

8

2026.01.15

公务员递补名单公布时间 公务员递补要求
公务员递补名单公布时间 公务员递补要求

公务员递补名单公布时间不固定,通常在面试前,由招录单位(如国家知识产权局、海关等)发布,依据是原入围考生放弃资格,会按笔试成绩从高到低递补,递补考生需按公告要求限时确认并提交材料,及时参加面试/体检等后续环节。要求核心是按招录单位公告及时响应、提交材料(确认书、资格复审材料)并准时参加面试。

37

2026.01.15

公务员调剂条件 2026调剂公告时间
公务员调剂条件 2026调剂公告时间

(一)符合拟调剂职位所要求的资格条件。 (二)公共科目笔试成绩同时达到拟调剂职位和原报考职位的合格分数线,且考试类别相同。 拟调剂职位设置了专业科目笔试条件的,专业科目笔试成绩还须同时达到合格分数线,且考试类别相同。 (三)未进入原报考职位面试人员名单。

52

2026.01.15

国考成绩查询入口 国考分数公布时间2026
国考成绩查询入口 国考分数公布时间2026

笔试成绩查询入口已开通,考生可登录国家公务员局中央机关及其直属机构2026年度考试录用公务员专题网站http://bm.scs.gov.cn/pp/gkweb/core/web/ui/business/examResult/written_result.html,查询笔试成绩和合格分数线,点击“笔试成绩查询”按钮,凭借身份证及准考证进行查询。

8

2026.01.15

Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

65

2026.01.14

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

36

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Node.js 教程
Node.js 教程

共57课时 | 8.6万人学习

CSS3 教程
CSS3 教程

共18课时 | 4.6万人学习

Vue 教程
Vue 教程

共42课时 | 6.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号