我当前的代码很糟糕,这是星期五下午的特别提示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
android:padding="10dip"
android:orientation="vertical">
<TextView
android:id="@+id/teams"
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="center"
android:textSize="25dp"
android:background="@color/colorAccent"
android:text="Pakistan vs India" />
<TextView
android:id="@+id/bats"
android:layout_marginTop="20dp"
android:textStyle="italic"
android:background="@color/colorAccent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="India is Batting"
android:textSize="18sp" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_marginTop="20dp"
android:layout_height="wrap_content">
<TextView
android:id="@+id/team"
android:layout_width="wrap_content"
android:textColor="@color/colorPrimary"
android:layout_height="30dp"
android:layout_marginTop="10dp"
android:gravity="center"
android:textSize="28dp"
android:text="Pakistan" />
<TextView
android:id="@+id/overs"
android:layout_alignParentRight="true"
android:textColor="@color/colorPrimary"
android:layout_marginRight="15dp"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:gravity="center"
android:textSize="28dp"
android:layout_marginTop="10dp"
android:text="Overs" />
<TextView
android:id="@+id/team_score"
android:layout_width="wrap_content"
android:layout_below="@+id/team"
android:textColor="@color/colorPrimary"
android:layout_height="30dp"
android:layout_marginTop="10dp"
android:gravity="center"
android:textSize="28dp"
android:text="69-1" />
<TextView
android:id="@+id/balls"
android:layout_alignParentRight="true"
android:textColor="@color/colorPrimary"
android:layout_below="@+id/team"
android:layout_marginRight="15dp"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:gravity="center"
android:textSize="28dp"
android:layout_marginTop="10dp"
android:text="15.5" />
<android.support.v7.widget.RecyclerView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</android.support.v7.widget.RecyclerView>
</RelativeLayout>
</LinearLayout>
我这样做是为了概念验证,以查看脚本的其余部分是否有效(确实如此)。
该游戏的目标层我想获得其顶级父级(即文档的第一个子级)的名称。所有块都应该做相同的事情。
我知道有一个更简单的方法可以做到这一点,但是我仍然很新,并且我不确定javascript和photoshop的某些细微差别,因此任何帮助将不胜感激!
答案 0 :(得分:3)
您可以进行递归操作。它可以替换所有“ if-else if ”语句。
(function getTopLayer(element) {
if (element.parent == doc && isLayerSet) {
//do something in this case fileNew.write('foo');
} else {
getTopLayer(element.parent);
}
})(layer);
但是请注意,这将无限运行,直到第一个 if 为真。
答案 1 :(得分:1)
您可能只是使用循环将链中的当前parent
分配给变量,直到该变量等于doc
或达到允许的最大父对象数为止:
function doTheThing(layer) {
if (!isLayerSet) return;
var currentLayer = layer;
for (var parentCount = 0; parentCount < 6; parentCount++) {
currentLayer = layer.parent;
if (currentLayer === doc) {
// do something
// function call here for better readability
return;
}
}
}