遍歷修改陣列元素為字串的陣列時要注意的坑

2022-06-23 11:39:13 字數 746 閱讀 4804

直接上結論:

遍歷修改陣列時,如果陣列的項是字串,如果要修改陣列的項,不能採用item的方式直接修改,應該採取下標的方式修改陣列的項.

例如:

var arr=["one", "two", "three"];

arr.foreach((item,index)=>{

item="four";

console.log(arr);

結果必然是陣列未改變,仍然是arry=["one", "two", "three"];,

解決辦法: 採用陣列下標

原理: 字串在js中是不可變的,在本例中遍歷陣列時,item代表的是字串本身,而arr[index]代表的時陣列的那一項(可以把那一項理解成乙個指標),直接對item賦值陣列是無接收到的,因為字串在js中是不可變的,但是對指標arr[index]賦值,陣列是能接收到的

但是.如果陣列的項是乙個可變的資料型別,直接對item操作,是可以實現改變陣列的

字串常量不可修改,陣列可修改的原因

一般情況下,想要獲得字串str kuai lai xiu gai wo 中的某個字元可以通過類似陣列方式獲得,str i 但是卻不可以通過str i xx 來修改。除非切割字串或者轉換為陣列。var str beijing str 0 hahaha console.log str console.l...

字串打散為陣列與把陣列元素組合為字串函式

這幾天發現兩個很不錯的函式,用起來超爽,給大家分享一下。少些迴圈,看起來質量更佳 幾行 實現乙個功能,相比我乙個函式搞定,而且速度要比你的快,你覺得那個合適?1.explode 分割條件,分割字串 例子 str name,admin,class str explode str var dump st...

修改陣列中某個元素

1 找出要替換的原元素值位置下標 2 定義乙個下標位置變數,把原元素值下標賦給它 3 對此下標進行重新賦新值 4 列印更新後的陣列元素值 author administrator 修改陣列 當已經存在乙個陣列,如何去修改其中的某個元素值,修改iphone5為iphone6 public class ...