如何修改此代码以便我可以获取field.DependencyFieldEvaluated值并在获得此值后立即退出函数?
function discoverDependentFields(fields) {
fields.forEach(function (field) {
if (field.DependencyField) {
var foundFields = fields.filter(function (fieldToFind) { return fieldToFind.Name === field.DependencyField; });
if (foundFields.length === 1) {
return field.DependencyFieldEvaluated = foundFields[0];
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
lxe*_*lxe 13
使用一个好的旧香草循环:
function discoverDependentFields(fields) {
for (var fieldIndex = 0; fieldIndex < fields.length; fieldIndex ++) {
var field = fields[fieldIndex];
if (field.DependencyField) {
var foundFields = fields.filter(function(fieldToFind) {
return fieldToFind.Name === field.DependencyField;
});
if (foundFields.length === 1) {
return foundFields[0];
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
好吧,如果你想保持幻想,请filter再次使用:
function discoverDependentFields(fields) {
return fields.filter(function(field) {
if (field.DependencyField) {
var foundFields = fields.filter(function(fieldToFind) {
return fieldToFind.Name === field.DependencyField;
});
if (foundFields.length === 1) {
return foundFields[0];
}
}
})[0];
}
Run Code Online (Sandbox Code Playgroud)
代替fields.forEach,您可以使用fields.map。这是一个例子:
var source=[1,2,3,4,5];
var destination=source.map(function(item){
if(item==3)
return 'OUTPUT';
}).filter(function(item){return item;})[0];
console.log(destination); // prints 'OUTPUT'Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28300 次 |
| 最近记录: |