You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

对数组内对象的字符串排序后原对象未变更是什么原因?

原因分析
  • 你对字符串做的split、join操作都是返回新值的方法,不会修改原字符串本身,而sort虽然是数组的原地排序方法,但你操作的是原字符串拆分后生成的全新数组,和原对象里存的A1字符串没有关联。
  • 整个排序转换流程的最终结果没有赋值回原对象的A1属性,所以原对象自然不会发生变更。
修正方案

你只需要把处理完成的字符串重新赋值给arr[i].A1即可,修改后的代码如下:

function merge(arr, needed_length){
    for(var i = 0; i < arr.length; i++){
        // 把排序后的结果赋值回原对象的A1属性
        arr[i]['A1'] = arr[i]['A1'].split(', ').sort(function(a, b){
            return b - a;
        }).join(', ');
        console.log(arr[i]['A1']);
        console.log(arr[i]);
    }
}
merge([{A1:'8, 7, 9'}, {A1:'4, 8, 6'}, {A1:'2, 4, 3'}], 5);

运行后就会看到对象的A1属性已经更新为排序后的字符串了。

内容的提问来源于stack exchange,提问作者Peifeng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 15:06:04