本人入坑 PHP 不久
js 方面很烂
这次写开源练手时
我遇到了个问题
我想在遍历里面实:[1].k = [1].v,{{ k }}显示 v 的内容
但是我属实不知道怎么赋值
恳请大佬教一下
response.data.result
是一个数组,数组里面是对象
let arr = response.data.result;
arr.forEach(item => {
let arr[item].k = arr[item].v;
})
谢谢各位大佬
问题已经解决了
感谢各位大佬的指教
1
gzlock 2020-05-29 05:45:46 +08:00 via iPhone 1
arr.foreach((item, index)=>{
// arr[index].k = arr[index].v // 被你绕进去了,直接用 item 不就行了 item.k = item.v } |
2
yukiloh 2020-05-29 07:44:37 +08:00
你可能是不知道第二个参数可以是 index?
|
3
DivineRapierH 2020-05-29 08:26:20 +08:00 via iPhone
|
4
gauzung 2020-05-29 08:43:48 +08:00
arr.forEach(item => {}) //这里的 item 就是当前遍历到的数组成员,所以 arr[item],第二个 let 没有用
arr.forEach((item,index)=>{arr[index].k=arr[index].v} // 带上第二个参数 |
5
hitaoguo 2020-05-29 08:51:23 +08:00
可以查 forEach 语法,看看回调函数里面参数都是什么
|
6
limars 2020-05-29 09:22:27 +08:00 via iPhone
为什么感觉你的需求就是重新生成一个新的一样的 result
|
7
minglanyu 2020-05-29 10:29:28 +08:00
这是 JavaScript 基础,跟 node 无关
```js arr.forEach((item)=>{ item.k = item.v }) ``` 既然没有用到 forEach 迭代 callback 里的第二第三个参数 index 和 array,不如直接更加简洁干脆的 for 。 ```js for(let i = 0; i<arr.length; i++){ arr[i].k = arr[i].v } ``` for 循环比 forEach 做 break 和 return 方便一些。 |
8
wunonglin 2020-05-29 10:36:12 +08:00 1
```js
for (const item of arr){ item.k = item.v } ``` |
9
wednesdayco 2020-05-29 11:39:28 +08:00
看了看 我差点以为学习到新骚操作写成 let a.c = 1
|
10
xingjue 2020-05-29 13:35:25 +08:00
php 真香
|
12
Phariel 2020-05-29 15:17:08 +08:00 via iPhone
我不建议你在使用原有数据的 reference 直接修改原数据 你这么写习惯了 在有些地方会产生一些你想不到的问题
请用 map 重新生成一份新数组 |
13
njwangchuan 2020-07-02 04:12:38 +08:00
Javascript 数组遍历四大基本操作:
foreach:返回值 undefined,常用于修改原数组的值,同步执行。 map:返回值 Array,对原数组的每个元素做操做返回值组成的新数组,元素个数与原数组相等。 filter:返回值 Array,对原数组的每个元素条件过滤,返回数组的元素个数小于等于原数组。 reduce:返回值 Object,对原数组的每个元素累进计算,常用于计算数组元素的统计量(求和、平均值等) 其中后三个函数一般不改变原数组的值,不管是面试还是实际开发,数组操作尽量不要用 for 循环。。 |