数组的push方法返回的是数组的长度不是一个数组。
y += y.push(dict[x]); //相当于
y += dict[x].length + 1; //这句话操作完之后y已经不是一个数组了,所以再次循环找不到push方法
看你获取随机颜色的代码 帮你写了一个, 你看行不行
("000000" + (~~(Math.random()*16777215)).toString(16)).slice(-6);
Math.random()*16777215)//随机0-ffffff 16777215是ffffff的10进制
双波浪线 ~~ 操作符也被称为“双按位非”操作符,可用于取整
前面加0是为了补全不够6位的情况
获取随机颜色。
function getColor() {
return Math.random().toString(16).substring(2, 8);
}
另外,你可以console.log(y) 看看y是什么,或者使用 typeof y 来判断类型。
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
不知道你期望得到的是什么结果.
如果是字符串的话,
y += Math.random() * 16
就可以.如果需要得到数组,
y.push(Math.random() * 16)
就可以.上面报错的原因是
+=
操作以后y变成了字符串, 失去了数组的push
方法.