可以使用JavaScript中的Array.sort()方法以及Array.includes()方法来实现此功能。
示例代码如下:
let sentences = ["apple pie", "banana split", "cherry tart", "date pudding"]; let searchTerms = ["pie", "banana", "tart", "pudding"];
sentences.sort((a, b) => { let aMatch = false; let bMatch = false;
for (let term of searchTerms) { if (a.includes(term)) { aMatch = true; } if (b.includes(term)) { bMatch = true; } }
if (aMatch === bMatch) { return 0; } else if (aMatch) { return -1; } else { return 1; } });
console.log(sentences);
这段代码首先声明了一个句子数组和一个搜索词/术语数组。接着,我们使用sort()方法对句子数组进行排序。在排序过程中,我们遍历搜索词/术语数组,并使用includes()方法检查句子是否包含该词/术语。如果句子包含任一词/术语,我们将其标记为匹配。最后,我们根据匹配情况对句子进行排序。如果两个句子都匹配或都不匹配,则它们保持原样。如果一个句子匹配而另一个不匹配,则匹配的句子排在前面。
在上面的示例代码中,输出结果如下:
["apple pie", "cherry tart", "banana split", "date pudding"]
因为"apple pie"和"cherry tart"都包含搜索词/术语,而"banana split"和"date pudding"都不包含,所以"apple pie"和"cherry tart"排在前面。