gpt4 book ai didi

javascript - 如何将数组拆分为奇数数组和偶数数组

转载 作者:行者123 更新时间:2023-12-01 01:43:30 25 4
gpt4 key购买 nike

我在将数组拆分为单独的奇数数组和偶数数组时遇到问题。我所做的是:

componentDidMount() {
axios.get( `${this.props.cmsUrl}types/genres`)
.then(response => { if ( response.data !== undefined ) {

let even = [];
let odd = [];
let allData = ["a", "b", "c", "d", "e", "f", "g", "h", ];

for (var i = 0; i < allData.length; ++i) {
if ( ( allData[i] % 2 ) === 0) {
even.push(allData[i]);
}
else {
odd.push(allData[i]);
}
};
console.log("allData : ",allData);
console.log("even : ",even);
console.log("even : ",odd);
}}
)
}

我真正期待的是

allData = [a, b, c, d]
odd = [a , c]
even = [b, d]

但真正发生的事情是

allData = even 
odd = empty array

这是我的问题吗 => ( allData[i] % 2 ) === 1

console.log 是:

  allData :  (8) ["a", "b", "c", "d", "e", "f", "g", "h"]0: "a"1: "b"2: "c"3: 
"d"4: "e"5: "f"6: "g"7: "h"length: 8__proto__: Array(0)
details.js:56 even : []length: 0__proto__: Array(0)
details.js:57 odd : (8) ["a", "b", "c", "d", "e", "f", "g", "h"]0:
"a"1: "b"2: "c"3: "d"4: "e"5: "f"6: "g"7: "h"length: 8__proto__: Array(0)

谢谢

最佳答案

您必须使用 charCodeAt 方法,因为 allData 是字符串数组而不是数字数组。

这是您问题的解决方案:

if ( ( allData[i].charCodeAt(0) % 2 ) === 0) { your code }

==================

正如Thomas Scheffer提到的那样,您似乎想根据字符索引而不是其值进行排序。

所以如果你想根据索引排序你必须写:

if ( ( i % 2 ) === 0) { your code }

它的转换如下:

allData = ["b","f","z","w"] => { odd=["f","w"], even=["b","z"]  }

但是如果你想根据字符值排序,你必须写:

if ( ( allData[i].charCodeAt(0) % 2 ) === 0) { your code }

它的转换如下:

allData = ["b","f","z","w"] => { odd=["w"] , even=["b","f","z"] }

关于javascript - 如何将数组拆分为奇数数组和偶数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52160959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com