跳到主要内容

Array 值方法

Array 字段应写入数组。使用数组方法前,先把未知入参归一化。

赋值​

const tagValues = Array.isArray(payload.input.tags) ? payload.input.tags : [];

await context.form.update({
recordId: 'record-id',
data: {
tags: tagValues,
},
});

可接受入参示例:

入参归一化结果
['urgent', 'vip']['urgent', 'vip']
'urgent,vip'写入前先 split
null根据业务需要写入 [] 或 null

常用方法​

方法用途
filter(callback)获取所有符合条件的项
find(callback)获取第一项符合条件的值
map(callback)转换每一项
some(callback)判断是否至少有一项符合条件
every(callback)判断是否每一项都符合条件
includes(value)判断是否包含某个标量值
reduce(callback, initial)汇总数组值

filter(callback)​

获取所有符合条件的项。

const items = Array.isArray(payload.input.items) ? payload.input.items : [];
const validItems = items.filter(
(item): item is { sku: string; quantity: number } =>
Boolean(item) &&
typeof item === 'object' &&
!Array.isArray(item) &&
typeof (item as { sku?: unknown }).sku === 'string' &&
Number.isFinite(Number((item as { quantity?: unknown }).quantity))
);

find(callback)​

获取第一项符合条件的值。

const firstLargeItem = validItems.find((item) => item.quantity > 10);

map(callback)​

转换每一项。

const skuList = validItems.map((item) => item.sku);

some(callback)​

判断是否至少有一项符合条件。

const hasLargeItem = validItems.some((item) => item.quantity > 10);

every(callback)​

判断是否每一项都符合条件。

const allHaveSku = validItems.every((item) => item.sku.trim().length > 0);

includes(value)​

判断数组是否包含某个标量值。

const tags = Array.isArray(record.data.tags)
? record.data.tags.map((item) => String(item))
: [];
const isVip = tags.includes('vip');

reduce(callback, initial)​

汇总数组值。

const totalQuantity = validItems.reduce((sum, item) => sum + item.quantity, 0);

获取符合条件的值​

const reviewerIds = Array.isArray(record.data.reviewers)
? record.data.reviewers.map((item) => String(item)).filter(Boolean)
: [];

const targetReviewerIds = reviewerIds.filter((memberId) =>
memberId.startsWith('member-')
);