[英]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 上搜索了很多问题,但找不到任何可以将所有值设置为空的内容。
您通过引用传递而不是复制数组。
这是您重构的代码,可以按预期工作。
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.