Foreach键和值输入参数javascript
foreach key and value input parameters javascript
我有点混淆foreach循环语法与键和值对。所以我有一个对象和一个foreach循环,就像下面的例子一样。在我的例子中,我的对象,值和键是什么?如果我想把加拿大改名为中国,我需要做些什么?
数组 $scope.tempData = [];
变量:
var data = [{name: "Kevin", country: "Canada"}, {name:"Bob", country: "Spain"}];
$scope.editedDetails = function () {
angular.forEach(object,
function(value, key) {
});
};
在您的例子中,您要迭代一个对象数组,因此值将是每个索引处的对象,键将是索引值(即0,1,…)。您希望将data
传递给您引用的object
。
var data = [{name: "Kevin", country: "Canada"}, {name:"Bob", country: "Spain"}];
angular.forEach(data, function (value, key) {
// Key will be 0 or 1
if (value.country === 'Canada') {
value.country = 'China';
}
});
因为对象在JavaScript中是通过引用传递的,所以你可以直接编辑每个对象的属性,也就是说,value.country === 'China'
会改变实际数组中的对象。
然而,你只能改变对象的属性,如果你试图覆盖整个对象,它将不起作用。
var data = [{name: "Kevin", country: "Canada"}, {name:"Bob", country: "Spain"}];
angular.forEach(data, function (value, key) {
if (value.country === 'Canada') {
// This won't update the object in data.
value = {
name: value.name,
country: 'China'
};
}
});
如果你在迭代一个非对象类型的对象,你必须使用键并直接编辑对象,在传递一个对象的情况下,键将是对象中的实际键。
var nyc = { name: 'New York City', state: 'NY' };
angular.forEach(nyc, function (value, key) {
if (key === 'state') {
nyc[key] = 'New York'; // Or, nyc.state since we know what it is
}
});
相关文章:
- 用于回调的javascript参数
- 我不能使用变量作为javascript参数
- Ajax.ActionLink-传递javascript参数
- 需要Javascript参数帮助
- NS_ERROR_XPC_BAD_CONVERT_JS:无法转换JavaScript参数arg 0[nsIDOMWind
- JavaScript参数验证
- 变量与表达式作为Javascript参数
- JavaScript参数对象不起作用
- 带有javascript参数的ASPNET MVC RenderAction
- IE JavaScript参数和填充输入字段
- 传递Javascript参数并分配给变量
- Jquery函数中提供Javascript参数
- 使用Play动态更改Javascript参数
- 函数中的 JavaScript 参数
- 本地化字符串中的 JavaScript 参数
- JQuery 函数突然停止工作,转换 Javascript 参数时出错
- JavaScript 参数对象 MDN 指南
- JavaScript 参数未跨处理程序传递
- 即时更改 Javascript 参数
- 附加到 JavaScript 参数中的所有值