请教各位 Node.js 大佬一个问题

2020-05-29 05:10:46 +08:00
 Midsmr

本人入坑 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;
      })

4399 次点击
所在节点    Node.js
13 条回复
gzlock
2020-05-29 05:45:46 +08:00
arr.foreach((item, index)=>{
// arr[index].k = arr[index].v
// 被你绕进去了,直接用 item 不就行了
item.k = item.v
}
yukiloh
2020-05-29 07:44:37 +08:00
你可能是不知道第二个参数可以是 index?
DivineRapierH
2020-05-29 08:26:20 +08:00
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} // 带上第二个参数
hitaoguo
2020-05-29 08:51:23 +08:00
可以查 forEach 语法,看看回调函数里面参数都是什么
limars
2020-05-29 09:22:27 +08:00
为什么感觉你的需求就是重新生成一个新的一样的 result
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 方便一些。
wunonglin
2020-05-29 10:36:12 +08:00
```js
for (const item of arr){
item.k = item.v
}
```
wednesdayco
2020-05-29 11:39:28 +08:00
看了看 我差点以为学习到新骚操作写成 let a.c = 1
xingjue
2020-05-29 13:35:25 +08:00
php 真香
Midsmr
2020-05-29 15:01:33 +08:00
@gzlock 谢谢大佬,但是这样在 vue 里面不能以调用{{k}}这样显示 v,会报未定义的错
Phariel
2020-05-29 15:17:08 +08:00
我不建议你在使用原有数据的 reference 直接修改原数据 你这么写习惯了 在有些地方会产生一些你想不到的问题

请用 map 重新生成一份新数组
njwangchuan
2020-07-02 04:12:38 +08:00
Javascript 数组遍历四大基本操作:

foreach:返回值 undefined,常用于修改原数组的值,同步执行。
map:返回值 Array,对原数组的每个元素做操做返回值组成的新数组,元素个数与原数组相等。
filter:返回值 Array,对原数组的每个元素条件过滤,返回数组的元素个数小于等于原数组。
reduce:返回值 Object,对原数组的每个元素累进计算,常用于计算数组元素的统计量(求和、平均值等)

其中后三个函数一般不改变原数组的值,不管是面试还是实际开发,数组操作尽量不要用 for 循环。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/676509

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX