我是framer.js和 我正在关注一本名为http://coffeescript-for-framerjs.com/#buy的书
fruits[1].toUpperCase()
它运作正常
fruits.toUpperCase()
这里的书是水果而不是水果我试过这两个但是收到错误
现在我知道 toUpperCase()是一个字符串方法,所以它不适用于Array。但那时书究竟在说什么呢。
答案 0 :(得分:8)
为什么:
.toUpperCase()
是String.prototype
的方法,而不是Array.prototype
。
您案例中正确语法的一个示例:
var fruits = ['apple', 'orange', 'kiwi']
for (var i = 0; i < fruits.length; i++) {
fruits[i] = fruits[i].toUpperCase();
}
答案 1 :(得分:1)
水果是一个阵列。 toUpperCase函数未在数组上定义,但是对于字符串对象。
答案 2 :(得分:1)
由于fruits[1]
引用了array
类型为String
toUpperCase()
元素
String
只能用于fruits.toUpperCase()
类型。
Array
失败的果实类型为<sap:ActivityDesigner x:Class="ARIASquibLibrary.Design.TestArrayActivityDesigner"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sap="clr-namespace:System.Activities.Presentation;assembly=System.Activities.Presentation"
xmlns:sapc="clr-namespace:System.Activities.Presentation.Converters;assembly=System.Activities.Presentation"
xmlns:sapv="clr-namespace:System.Activities.Presentation.View;assembly=System.Activities.Presentation" Collapsible="False">
<sap:ActivityDesigner.Resources>
<ResourceDictionary>
<sapc:ArgumentToExpressionConverter x:Key="ArgumentToExpressionConverter" />
</ResourceDictionary>
</sap:ActivityDesigner.Resources>
<Grid>
<sapv:ExpressionTextBox
MaxWidth="150"
MinWidth="150"
Margin="5"
OwnerActivity="{Binding Path=ModelItem}"
Expression="{Binding Path=ModelItem.StringsList, Mode=TwoWay,
Converter={StaticResource ArgumentToExpressionConverter},
ConverterParameter=In }"/>
</Grid>
答案 3 :(得分:1)
如果你想让它以这种方式运作:
Array.prototype.toUpperCase = function() {
for(var i = 0; i < this.length; i++)
if(typeof this[i] === 'string')
this[i] = this[i].toUpperCase();
}
测试:
var fruits = ["oranges", "apples", "bananas"];
fruits.toUpperCase();
console.log(fruits.toString());
柑桔,苹果,香蕉
答案 4 :(得分:0)
我还可以通过以下方法解决它:
let fruit = new Array("peach","orange", "mango", "apple" );
console.log(fruit.toString().toUpperCase());