为什么属性为null的元素值并没有改变



```bash

   data.forEach(item => {
        debugger
        const type = fixedTypeDatas.value.filter(item1 => item1.dictValue === item.assetsType)
        if (type && type.length > 0) {
          item.assetsType = type[0].dictLabel
        } else {
          item.assetsType = ''
        }

        item = Object.fromEntries(Object.entries(item).map(([key, value]) => [key, value === null ? '111111' : value]))
        console.log('111111111111', item)
      })
      console.log('sdsdsdsds', data)


![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/279470237686156.png "#left")
为什么属性为null的元素值并没有改变

你修改的是item这变量的值,item直接赋值就修改了引用地址,这样循环里的item和数组对应项就不存在关系了,所以data里的对应项没有被改掉;
前面的增加的assetsType 是引入还存在引用关系,还是同一块引用地址,所以能在data中体现

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/961451
  • 这篇博客你也可以参考下:递归把数组的所有null值转换为空字符串
  • 除此之外, 这篇博客: 为什么表设计时必须把字段定义为NOT NULL并设默认值中的 is null 会使用索引 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • mysql> explain select * from user where address is null;
    +----+-------------+-------+------------+------+---------------+-------------+---------+-------+------+----------+-----------------------+
    | id | select_type | table | partitions | type | possible_keys | key         | key_len | ref   | rows | filtered | Extra                 |
    +----+-------------+-------+------------+------+---------------+-------------+---------+-------+------+----------+-----------------------+
    |  1 | SIMPLE      | user  | NULL       | ref  | idx_address   | idx_address | 1023    | const |    1 |      100 | Using index condition |
    +----+-------------+-------+------------+------+---------------+-------------+---------+-------+------+----------+-----------------------+
    1 row in set
    
  • 以下回答由chatgpt基于相关博客总结生成:

    由于您没有提供具体代码片段或其他提示,我无法根据您的问题进行更具体的解答。但是,根据参考资料提供的信息,我可以给出一些可能导致元素属性为null的原因和解决方案的思路。

    可能导致元素属性为null的原因:

    1.异步问题:在调用云函数或其他异步操作时,需要注意异步回调的调用顺序和传递参数的正确性。

    2.函数返回值问题:可能的原因是在函数内部没有正确的返回值,或者返回值的数据类型与预期不符。

    3.其他问题:可能是代码逻辑错误,数据类型错误,或者其他未知原因导致的问题。

    解决方案的思路:

    1.检查代码中异步操作的调用方式和参数传递的正确性,可以使用async/await等方式确保异步回调按照正确的顺序执行。

    2.检查函数内部的返回值,确保返回值的正确性。可以使用调试工具查看返回值的类型和值,或者添加日志输出查看函数内部的执行情况。

    3.检查代码逻辑和数据类型是否正确,可以使用断点调试工具查看代码执行的流程和变量的值,或者添加assert断言语句确保数据类型和值的正确性。

    另外,如果您遇到了其他具体问题,可以根据具体情况提供更多的代码片段或其他提示,方便更好的解答问题。