JavaScript内置对象:String、Math与Array详解

需积分: 0 1 下载量 55 浏览量 更新于2024-07-31 收藏 1.1MB PDF 举报
"JavaScript中的String、Math和Array对象是编程中常用的数据处理工具。String对象提供了处理字符串的各种方法,如转换大小写、查找子串、分割字符串等;Math对象包含了一系列数学运算函数,如求平方根、最大值、最小值等;Array对象则涉及数组的创建、遍历、添加和删除元素等操作。在实际编程中,这些对象的使用极大地提高了代码的效率和便捷性。" 在JavaScript中,String对象是处理字符串的基础,它提供了多种方法以方便对字符串进行操作。例如,`toUpperCase()`方法可以将字符串转换为大写,`toLowerCase()`将其转为小写,`charAt(index)`获取指定位置的字符,`substring(start, end)`截取字符串的一部分,以及`split(separator)`根据分隔符将字符串分割成数组。在示例代码中,`StringTest`函数展示了如何使用`toUpperCase()`方法将字符串转换为大写。 Math对象则包含了各种数学函数,适用于计算和处理数值。比如,`Math.sqrt(number)`计算平方根,`Math.max(number1, number2, ...)`找出一组数中的最大值,`Math.min(number1, number2, ...)`找到最小值,还有`Math.random()`生成0到1之间的随机数。这些方法在处理数学问题或者进行数据分析时非常有用。 Array对象是处理数组的关键,它提供了丰富的数组操作方法。`push(item)`在数组末尾添加元素,`pop()`移除并返回数组最后一个元素,`shift()`移除并返回数组第一个元素,`unshift(item)`在数组开头添加元素,`splice(index, deleteCount, item1, item2, ...)`可以插入、删除或替换数组元素。此外,`slice(start, end)`可以复制数组的一部分,`concat(array2, array3, ...)`合并多个数组。数组的`length`属性则用于获取或设置数组的长度。 在实际开发中,熟练掌握这些对象及其方法对于编写高效且易维护的代码至关重要。例如,当需要处理用户输入的字符串时,String对象的方法可以帮助我们进行格式化和验证;在进行数据分析或计算时,Math对象的函数可以提供必要的数学支持;而在处理动态数据集合时,Array对象的灵活性则显得尤为关键。了解并熟练运用这些内置对象,可以显著提升JavaScript编程的效率和质量。

优化以下代码: // 初始化结果 long coherenceTotal = 0; long effectiveTotal = 0; long completeTotal = 0; long coherenceSuccess = 0; long effectiveSuccess = 0; long completeSuccess = 0; long lastCoherenceTotal = 0; long lastEffectiveTotal = 0; long lastCompleteTotal = 0; long lastCoherenceSuccess = 0; long lastEffectiveSuccess = 0; long lastCompleteSuccess = 0; // 平均结果 for (DqExecuteResult dqExecuteResult : dqExecuteResults) { String ruleName = dqExecuteResult.getRuleName(); int state = dqExecuteResult.getState(); int total = dqExecuteResult.getTotal(); double statisticsValue = dqExecuteResult.getStatisticsValue(); switch (ruleName) { case "(multi_table_accuracy)": coherenceTotal += total; coherenceSuccess += (state == DqTaskState.FAILURE.getCode()) ? (total - Math.round(statisticsValue)) : total; break; case "(null_check)": completeTotal += total; completeSuccess += (state == DqTaskState.FAILURE.getCode()) ? (total - Math.round(statisticsValue)) : total; break; default: effectiveTotal += total; effectiveSuccess += (state == DqTaskState.FAILURE.getCode()) ? (total - Math.round(statisticsValue)) : total; } } // 最新一次结果 for (DqExecuteResult dqExecuteResult : lastDqExecuteResults) { String ruleName = dqExecuteResult.getRuleName(); int state = dqExecuteResult.getState(); int total = dqExecuteResult.getTotal(); double statisticsValue = dqExecuteResult.getStatisticsValue(); switch (ruleName) { case "(multi_table_accuracy)": lastCoherenceTotal += total; lastCoherenceSuccess += (state == DqTaskState.FAILURE.getCode()) ? (total - Math.round(statisticsValue)) : total; break; case "(null_check)": lastCompleteTotal += total; lastCompleteSuccess += (state == DqTaskState.FAILURE.getCode()) ? (total - Math.round(statisticsValue)) : total; break; default: lastEffectiveTotal += total; lastEffectiveSuccess += (state == DqTaskState.FAILURE.getCode()) ? (total - Math.round(statisticsValue)) : total; } }

2023-05-27 上传
2023-05-25 上传