如何在使用repeat时为旧列表创建新的独立(非别名)列表 - AppleScript

时间:2013-06-17 18:55:33

标签: applescript

我想在oldList中选择某些元素,然后创建一个新元素,如下面的

示例#1:得到奇数号 oldList = {1,2,3,4,5,6,7,8}
newList = {1,3,5,7}

示例#2:获取字符串
oldList = {1,“Tiger”,{1,2,3}
newList = {“Tiger”}

我为示例1编写了一个脚本:

set oldList to {1, 2, 3, 4, 5, 6}  

set newList to {}  
repeat with theItem in oldList  
    if theItem mod 2 = 1 then  
        copy theItem to end of newList  
    end if  
end repeat

我希望newList应该是{1,3,5}但实际上它是{oldList的第1项,oldList的第2项,oldList的第3项}。我的问题是如何解决这个问题。

至于这个具体的例子,一个简单的解决方案是将复制语句改为:

copy theItem as integer to end of newList 

但我正在寻找一个更通用的解决方案,而不是考虑旧列表中元素的类。谢谢!

1 个答案:

答案 0 :(得分:0)

您应该阅读有关how repeat loops work in AppleScript.

的更多信息
set oldList to {1, 2, 3, 4, 5, 6}

set newList to {}
repeat with theItem in oldList
    set theItem to contents of theItem
    if theItem mod 2 = 1 then
        copy theItem to end of newList
    end if
end repeat