JavaScript只打印数组的最后一个元素
我想在JavaScript只打印数组的最后一个元素,javascript,arrays,javascript-objects,Javascript,Arrays,Javascript Objects,我想在这个内循环。results是来自我的服务器的JSON,但我的代码只打印数据的最后一个元素 let tempEvent = []; this.results.map(element => { tempEvent.push(element); }); let arr = []; for (let i = 0; i < tempEvent.length; i++) { arr = [{ name: this.results[i].name }];
这个内循环。results
是来自我的服务器的JSON,但我的代码只打印数据的最后一个元素
let tempEvent = [];
this.results.map(element => {
tempEvent.push(element);
});
let arr = [];
for (let i = 0; i < tempEvent.length; i++) {
arr = [{ name: this.results[i].name }];
}
console.log(arr);
让tempEvent=[];
this.results.map(元素=>{
tempEvent.push(元素);
});
设arr=[];
for(设i=0;i
我已经尝试过这样做:
for (let i = 0; i < tempEvent.length; i++) {
arr += [{ name: this.results[i].name }];
}
for(设i=0;i
但是它给了我
[Object Object]
,我不知道那是什么。你正在重新分配整个数组。您可以在每次迭代中推送该项
我还认为您希望在此处推送一个对象而不是另一个数组:
arr.push({ name: this.results[i].name });
或:使用索引
尝试以下方法:
arr[i] = [{ name: this.results[i].name }];
或
相反。其他人有你的答案,为什么你只得到最后一个元素,但你使用地图的方式也不对。它基于对调用它的数组的元素应用回调返回数组,因此在本例中:
let tempEvent = this.results.map(element => element);
它只是复制结果数组。您还将丢弃map的结果,像forEach一样使用它,这将是:
let tempEvent = [];
this.results.forEach(element => tempEvent.push(element));
复制阵列有许多较短的方法(不知道性能如何,但可能与性能无关),您也可以这样做:
let tempEvent = [...this.results];
或
等等。一些代码:
let results=[0,1,2];
让tempEvent=results.map(元素=>element);
console.log(tempEvent);
tempEvent=[…结果];
console.log(tempEvent)
tempEvent=Array.from(结果);
console.log(tempEvent)代码>改为尝试执行console.log(JSON.stringify(arr))
。您正在创建的数组是一个对象数组,每个对象都有一个name
属性和一个值。所以你得到的是[Object Object]
,因为你试图输出一个对象,需要告诉js如何显示它。它还打印[Object Object],我是个白痴。在for循环中,执行arr.push({name:this.results[i].name}];
-否则,每次都用最后一个成员覆盖数组。这就是您要查找的
let tempEvent = [];
this.results.forEach(element => tempEvent.push(element));
let tempEvent = [...this.results];
let tempEvent = Array.from(this.results);