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



