繁体   English   中英

复制具有空值的原始数组

[英]Copy original array with empty values

我有以下数组:

arr1 = [{Name: "John", Email: "john@example.com", Age: "29"}, {Name: "Emma", Email: "emma@example.com", Age: "25"}]

我怎样才能得到这个数组:

arr2 = [{Name: "", Email: "", Age: ""}]

不改变arr1

我试过这样做:

let arr2 = arr1[0]

for (let i in arr2) {
    arr2[i] = ""
}

console.log(arr1) //returns [{Name: "", Email: "", Age: ""}, {Name: "Emma", Email: "emma@example.com", Age: "25"}]
console.log(arr2) //returns [{Name: "", Email: "", Age: ""}]

但这也会用空值改变 arr1[0]

我在 SO 上搜索了很多问题,但找不到任何可以将所有值设置为空的内容。

您通过引用传递而不是复制数组。

https://dmitripavlutin.com/value-vs-reference-javascript/#:~:text=In%20JavaScript%2C%20you%20can%20pass,by%20reference%20when%20assigning%20objects

这是您重构的代码,可以按预期工作。

 arr1 = [{Name: "John", Email: "john@example.com", Age: "29"}, {Name: "Emma", Email: "emma@example.com", Age: "25"}] let arr2 = {...arr1[0]} // make a copy of arr1[0] for (let i in arr2) { arr2[i] = "" } console.log(arr1) //returns [{Name: "", Email: "", Age: ""}, {Name: "Emma", Email: "emma@example.com", Age: "25"}] console.log([arr2]) //returns [{Name: "", Email: "", Age: ""}]

 let arr1 = [{Name: "John", Email: "john@example.com", Age: "29"}, {Name: "Emma", Email: "emma@example.com", Age: "25"}] let arr2 = {...arr1[0]} for (let i in arr2) { arr2[i] = "" } console.log(arr1) console.log(arr2)

只是简单地使用 for 循环或以您想要更改它的方式替换值。

 var myDog = { "name": "Coder", "legs": 4, "tails": 1, "friends": ["freeCodeCamp Campers"] }; // Update the name value myDog.name = "Happy Coder"; document.getElementById("p1").innerHTML = Object.values(myDog);
 <div id='p1'></div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM