javascript之将可观察数组存储在变量中并替换其内容

jyk 阅读:56 2025-12-25 22:24:30 评论:0

如何通过将可观察数组的内容存储在另一个变量中来替换它,例如:

我有一个可观察的数组:var list = self.StateList();

我想这样做:

var cities = self.CityList(); 
//console.log(cities); 
 var oldLocation = ko.utils.arrayFirst(cities, function (item) { 
     return item.CityId == args.CityId; 
 
 }); 
 
 cities.replace(oldLocation, args); 

但它显示错误城市没有方法替换

更新我尝试使用这个anwser,它对我有一些帮助我使用了可观察的切片方法,它对我有一些帮助:

   var cities = self.CityList(); 
   var observble = ko.observable(); 
   observble(cities.slice(0)); 

所以我的所有城市observable将被复制到一个全新的observable

现在我可以做任何我想做的事,因为它是我的城市的相同可观察数组。有人可能会想为什么要将可观察数组转换为变量,然后再次将其转换为可观察数组。我需要将可观察数组发送到函数。如果还有其他更好的解决方案,请在这里发布。

请您参考如下方法:

请尝试这个

// The observable array 
this.CityList = ko.observableArray([{CityId :1 }, {CityId :2 } ,{CityId :3 }]); 
 
// observable array stored in variable. The brackets should not be used if you  
// want to treat the cities variable as an observable array 
 var cities = this.CityList; 
 
 // Find a city with id 1. 
 var oldLocation = ko.utils.arrayFirst(cities(), function (item) { 
     return item.CityId == 1; 
 
 }); 
 
console.log(oldLocation); 
 
// Replace the city with id 5 
cities.replace(oldLocation , {CityId :5 }); 
 
// The values in both arrays will get modified 
console.log(cities()[0]); 
console.log(this.CityList()[0]); 


标签:JavaScript
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号