我有一个包含属性的数组,例如:
var arrayPeople = [
{
name: 'joe',
job: 'programmer',
age: 25,
},
{
name: 'bob',
job: 'plumber',
age: 30,
};
];
Run Code Online (Sandbox Code Playgroud)
我想创建一个将返回其平均年龄的函数,这是我目前无法正常工作的函数
var ageAverage = function(array) {
var age = 0, average;
for (var i = 0; i < array.length; i++) {
age += array[i].age;
}
average = age / array.length;
return average;
};
Run Code Online (Sandbox Code Playgroud)
运行此函数时我得到的是非数字
但我能开展的工作是:
var ageAverage = function(array) {
var age = 0, average;
for (var i = 0; i < array.length; i++) { …Run Code Online (Sandbox Code Playgroud) 这段代码中有一个错误
<img src="../../../assets/gms-logo.png" alt="logo" routerLink="/overview" alt="website icon">
Run Code Online (Sandbox Code Playgroud)
但是当我检查资产文件夹时,gms-logo.png仍然存在angular-cli.json,资产也存在.路径也是正确的.
最近,我一直在研究搜索功能.所以我的假设是,
即使用户仍未关注输入类型,程序是否也开始搜索?我该如何解决?
下面是我的搜索html以及其建议段的显示
<input type="text" placeholder="Search" (keyup)="onSearch($event.target.value)">
<div class="suggestion" *ngIf="results.length > 0">
<div *ngFor="let result of results ">
<a href="" target="_blank">
{{ result.name }}
</a>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
以下是我的组件
results: Object;
onSearch(name) {
this.search
.searchEmployee(name)
.subscribe(
name => this.results = name,//alert(searchName),this.route.navigate(['/information/employees/']),
error => alert(error),
);
}
Run Code Online (Sandbox Code Playgroud) typeerror google-developer-tools angular-cli google-developers-console angular
试图获取对象的图片链接。这些对象在数组中,打字稿中的方法如下所示:
getMealPicture(orderLineMeal: OrderLine): string {
for (let meal of this.meals) {
if (meal.id === orderLineMeal.mealId) {
return meal.picture;
}
}
}
Run Code Online (Sandbox Code Playgroud)
返回字符串,并将此字符串放入HTML中:
<img src="{{getMealPicture(orderLineMeal)}}" alt="" class="cartMeal-picture">
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
ERROR TypeError: Cannot read property 'length' of undefined
at CheckoutPageComponent.push../src/app/checkout-page/checkout-page.component.ts.CheckoutPageComponent.getMealPicture (checkout-page.component.ts:113)
at Object.eval [as updateRenderer] (CheckoutPageComponent.html:9)
at Object.debugUpdateRenderer [as updateRenderer] (core.js:22482)
at checkAndUpdateView (core.js:21857)
at callViewAction (core.js:22093)
at execEmbeddedViewsAction (core.js:22056)
at checkAndUpdateView (core.js:21853)
at callViewAction (core.js:22093)
at execComponentViewsAction (core.js:22035)
at checkAndUpdateView (core.js:21858)
Run Code Online (Sandbox Code Playgroud)
第一行指向此HTML img标签所在的行113。但是图像在那里,它们有时会在内容加载后加载第二到第二个。您是否认为这是问题所在?
这些膳食(this.meals)是从服务和后端.NET获取的。所以我在构造函数中初始化了这个数组:
meals: Meal[];
this.mealService.getAllMeals().subscribe( listOfMeals => {
this.meals = …Run Code Online (Sandbox Code Playgroud) 我有一个嵌套数组的例子:
var testArray = [1,2,[3,4,[5,6],7],8,9,[10,11],12];
Run Code Online (Sandbox Code Playgroud)
这是我获取嵌套数组长度的函数:
Array.prototype.getLength = function() {
var sum = 0;
function getMultiLength(array) {
for (count = 0; count < array.length; count ++) {
sum ++;
if (!array[count].length) {
getMultiLength(array[count]);
}
}
}
getMultiLength(this.valueOf());
return sum;
};
Run Code Online (Sandbox Code Playgroud)
我对结果的期望是12,但我得到的是无限循环:
testArray.getLength(); //infinite loop
Run Code Online (Sandbox Code Playgroud)
任何人都知道为什么以及如何获得嵌套数组长度?
javascript arrays function infinite-loop multidimensional-array
angular ×2
javascript ×2
angular-cli ×1
arrays ×1
for-loop ×1
function ×1
typeerror ×1
typescript ×1