首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何操作数组的元素

如何操作数组的元素
EN

Stack Overflow用户
提问于 2010-02-02 00:16:10
回答 4查看 460关注 0票数 1

我必须操作一个4元素数组,计算相邻元素之间的差值,并用产生的差值创建一个新的数组。最后一个元素应该与第一个元素保持一致。

示例:

代码语言:javascript
复制
firstArray=[0,1,2,3];
secondArray = newArray();

第二个数组将是:

代码语言:javascript
复制
secondArray[0]: 1-0 = 1
secondArray[1]: 2-1 = 1
secondArray[2]: 3-2 = 1
secondArray[3]: 3-0 = 3

因此,新数组应为secondArray=[1,1,1,3]

我试着用一个for循环来做这件事,但是当第三个数组要操作时,它总是操作firstArray3 - secondArray...应该是fistArray3 - firstArray的时候

如何操作firstArray以将其与新创建的secondArray区分开来?

谢谢!

EN

回答 4

Stack Overflow用户

发布于 2010-02-02 00:21:00

在你的例子中,你从来没有提到过第三个数组。

这就是你要做的吗?

代码语言:javascript
复制
secondArray[0] = firstArray[1]-firstArray[0];
secondArray[1] = firstArray[2]-firstArray[1];
secondArray[2] = firstArray[3]-firstArray[2];
secondArray[3] = firstArray[0]-firstArray[3];

如果您处于循环中,则表达式可能是

代码语言:javascript
复制
secondArray[i] = firstArray[(i+1)%arrayLength]-firstArray[i];

更新:

代码语言:javascript
复制
secondArray[i] = Max(firstArray[(i+1)%arrayLength],firstArray[i]) - Min(firstArray[(i+1)%arrayLength],firstArray[i]);

使用Max和Min将得到两个元素中的较大和较小的元素。这有帮助吗?

票数 1
EN

Stack Overflow用户

发布于 2010-02-02 00:20:22

在你的循环中:

代码语言:javascript
复制
if (i == 3)
firstArray[i] - firstArray[0];
票数 0
EN

Stack Overflow用户

发布于 2010-02-02 00:23:25

试试这个:

代码语言:javascript
复制
var firstArray = [0,1,2,3],
    secondArray = [];
firstArray.forEach(function(val, i, arr) {
    secondArray[i] = arr[(i+1)%arr.length] - val;
});

编辑:没有forEach的解决方案

代码语言:javascript
复制
for (var i=0; i<firstArray.length; ++i) {
    secondArray[i] = firstArray[(i+1)%firstArray.length] - firstArray[i];
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2178133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档